3
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];

sortedFloats = [Arr_distance sortedArrayUsingDescriptors:
                    [NSMutableArray arrayWithObject:sortDescriptor]];

sortedFloatsNSMutableArray在哪里,Arr_distance也是 NSMutableArray

我得到警告Incompatible pointer types assigning to 'NSMutableArray ' from 'NSArray ' 仍然结果是正确的,但警告是什么?

4

4 回答 4

5

把你sortedFloats当作NSArray而不是NSMutableArray。你会发现你的警告消失了。

享受编程

于 2012-12-13T06:02:56.417 回答
2

该代码中有两个问题:

  1. 参数类型sortedArrayUsingDescriptorsNSArray您传递的NSMutableArray
  2. 返回类型sortedArrayUsingDescriptorsNSArray您将其分配给NSMutableArray对象

检查方法签名:

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
于 2012-12-13T06:03:24.893 回答
0

sortedArrayUsingDescriptors:您的默认对象中,您应该传递的是NSArray。当您传递时,您会收到警告NSMutableArray

根据文档:

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
于 2012-12-13T05:59:40.827 回答
0

sortedFloats是对象,NSMutableArray您还可以使用数组键对数组进行排序,sortedArrayUsingDescriptors方法是NSMutableArray返回NSArray..

所以这里这个sortedArrayUsingDescriptors方法的返回类型是NSArray并且你将这个返回类型数组存储在NSMutableArray名称的对象中,sortedFloats所以将sortedFloats其作为NSArray类的对象。我希望这可以帮助你...

于 2012-12-13T06:18:39.973 回答