当我尝试在表格视图中对来自Web服务的数据进行排序时,我引用了this链接。我的第一个问题是我们可以在可变数组中对数据进行排序吗?我在以下代码中遇到此编译器错误。
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Name" ascending:YES];
NSArray *sortArrayWithObject = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [tempArray sortUsingDescriptors:sortArrayWithObject]; // error
tempArray
是NSMutableArray
而不是NSArray
。
答案 0 :(得分:3)
问题是因为一个愚蠢的错误。我修改了如下所示的API调用,它现在可以正常工作。
NSArray *sortedArray = [tempArray sortedArrayUsingDescriptors:sortArrayWithObject];
答案 1 :(得分:0)
方法sortUsingDescriptors:
返回void
,这就是您收到此消息的原因。发送邮件的NSMutableArray
(在您的情况下为tempArray
)由sortUsingDescriptors:
方法直接修改。
答案 2 :(得分:0)
它返回void
,您期待NSArray
。
- (void)sortUsingDescriptors:(NSArray *)sortDescriptors
您的代码应为:
[tempArray sortUsingDescriptors:sortArrayWithObject];
上面将 使用给定的排序描述符数组对接收数组(tempArray)进行排序。