NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES];
sortedFloats = [Arr_distance sortedArrayUsingDescriptors:
[NSMutableArray arrayWithObject:sortDescriptor]];
其中sortedFloats
是NSMutableArray而Arr_distance
也是NSMutableArray
我收到警告Incompatible pointer types assigning to 'NSMutableArray ' from 'NSArray '
仍然结果是正确的,但是有什么警告?
答案 0 :(得分:5)
将您的sortedFloats
作为 NSArray 而不是 NSMutableArray 。你会发现你的警告消失了。
享受编程
答案 1 :(得分:2)
该代码中存在两个问题:
sortedArrayUsingDescriptors
NSArray
参数类型为NSMutableArray
sortedArrayUsingDescriptors
的返回类型NSArray
,您将其分配给NSMutableArray
对象检查方法签名:
- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
答案 2 :(得分:0)
在sortedArrayUsingDescriptors:
中,您应该传递的默认对象为NSArray
。当您传递NSMutableArray
时,您会收到警告。
根据文件:
- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
答案 3 :(得分:0)
此处sortedFloats
是NSMutableArray
的对象,您还使用数组键对数组进行排序,使用sortedArrayUsingDescriptors
NSMutableArray
方法返回NSArray
..
所以这里这个sortedArrayUsingDescriptors
方法的返回类型是NSArray
,你将这个返回类型数组存储在NSMutableArray
名称为sortedFloats
的对象中,所以把sortedFloats
作为NSArray
类的对象。
我希望这能帮到你......