[英]sorting NSArray on ID
我有一個NSArray的人。 (例如,在線,離線等),現在我從核心數據庫中獲得了此信息。 那個核心數據庫從Web服務獲取對象。 現在,我需要另一個狀態(注銷)到陣列的末尾。 這就是我在代碼中所做的。
_arrStatus = [[NSMutableArray alloc]init];
for (Status *status in matches) {
[_arrStatus addObject:status];
}
BOOL logout = false;
for (Status *status in matches) {
if([status.cs_id isEqualToNumber:[NSNumber numberWithInt:0]]){
logout = true;
}
}
if(!logout){
Status* newStatus = [NSEntityDescription insertNewObjectForEntityForName:@"Statussen" inManagedObjectContext:context];
newStatus.cs_id = [NSNumber numberWithInt:0];
newStatus.cs_name = @"Logout";
[_arrStatus addObject:newStatus];
}
NSError *error = nil;
[context save:&error];
就像您看到的那樣,我將“注銷狀態”的ID設置為0,因為我確定該ID可用。 這是如何訂購我的NSArray和ID的方法。
現在我希望我的數組看起來像這樣。
有人知道我該怎么做嗎?
更改此:
if(!logout){
Status* newStatus = [NSEntityDescription insertNewObjectForEntityForName:@"Statussen" inManagedObjectContext:context];
newStatus.cs_id = [NSNumber numberWithInt:0];
newStatus.cs_name = @"Logout";
[_arrStatus addObject:newStatus];
}
對此:
if(!logout){
Status* newStatus = [NSEntityDescription insertNewObjectForEntityForName:@"Statussen" inManagedObjectContext:context];
newStatus.cs_id = [NSNumber numberWithInt:0];
newStatus.cs_name = @"Logout";
[_arrStatus insertObject:newStatus atIndex:0];
}
將日志放在陣列的前面。 或者,如果您需要對數組進行排序,則可以使用如下代碼:
NSArray *sortedArray = [_arrStatus sortedArrayUsingComparator: ^(id obj1, id obj2) {
return (NSComparisonResult)[(Status*)obj1.cs_id compare:(Status*)obj2.cs_id];
}];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.