【问题标题】:Why am I getting the error "Incompatible pointer types assigning to 'NSMutableArray *' from 'NSArray *'." while sorting keys?为什么我收到错误“从 'NSArray *' 分配给 'NSMutableArray *' 的指针类型不兼容。”在排序键时?
【发布时间】:2015-06-19 13:09:20
【问题描述】:

使用下面的代码,我收到错误消息“不兼容的指针类型从 'NSArray *' 分配给 'NSMutableArray *'。”我没有使用 NSArray,为什么会出现此错误,我该如何解决?

(NSMutableArray) = [NSMutableDictionary keysSortedByValueUsingComparator: ^(id obj1, id obj2) {

    if ([obj1 integerValue] > [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedDescending;
    }

    if ([obj1 integerValue] < [obj2 integerValue]) {
        return (NSComparisonResult)NSOrderedAscending;
    }
    return (NSComparisonResult)NSOrderedSame;
}];

【问题讨论】:

    标签: ios objective-c nsmutablearray nsarray nsmutabledictionary


    【解决方案1】:

    这是因为keysSortedByValueUsingComparator: 方法返回一个指向包含键的已排序NSArray 的指针。您正在使用 NSArray 指针并尝试将其分配给 NSMutableArray。指针 这是一个错误,因为NSArrayNSMutableArray 的超类,并且不会响应所有相同的选择器/方法。

    您需要将keysSortedByValueUsingComparator: 的输出分配给NSArray 指针,而不是NSMutableArray 指针。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多