从'nsarray'分配给'nsmutablearray'的不兼容指针类型

时间:2012-12-13 05:53:20

标签: iphone ios ios4 nsarray

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 '仍然结果是正确的,但是有什么警告?

4 个答案:

答案 0 :(得分:5)

将您的sortedFloats作为 NSArray 而不是 NSMutableArray 。你会发现你的警告消失了。

享受编程

答案 1 :(得分:2)

该代码中存在两个问题:

  1. 您传递sortedArrayUsingDescriptors
  2. NSArray参数类型为NSMutableArray
  3. sortedArrayUsingDescriptors的返回类型NSArray,您将其分配给NSMutableArray对象
  4. 检查方法签名:

    - (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
    

答案 2 :(得分:0)

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

根据文件:

- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors

答案 3 :(得分:0)

此处sortedFloatsNSMutableArray的对象,您还使用数组键对数组进行排序,使用sortedArrayUsingDescriptors NSMutableArray方法返回NSArray ..

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