我收到了这个警告:
Incompatible pointer types initializing 'NSMutableArray *__strong' with an expression of type 'NSArray *
这是发出警告的代码行:
NSMutableArray *apptDataArray = [AppointmentInfo MR_findAllWithPredicate:nsp];
其中MR_findAllWithPredicate返回NSArray。我一直在阅读SO和谷歌的所有帖子,但没有发现这样的事情。我认为这很简单,但我需要帮助。
答案 0 :(得分:4)
NSArray
不一个NSMutableArray
,因此指针不兼容,并且调用变异方法会崩溃。您可以采用另一种方式,因为NSMutableArray
是NSArray
子类。
您可以使用NSMutableArray
+[NSMutableArray arrayWithArray:]
NSMutableArray *apptDataArray = [NSMutableArray arrayWithArray:[AppointmentInfo MR_findAllWithPredicate:nsp]];
如果您的方法返回nil
,请创建NSArray *
变量并在创建可变数组之前检查nil
。
答案 1 :(得分:3)
除了BergQuester的回答之外,还有一个从阵列中获取可变数组的更短路径:
NSMutableArray *apptDataArray = [[AppointmentInfo MR_findAllWithPredicate:nsp] mutableCopy];