1

我收到这个警告:

Incompatible pointer types initializing 'NSMutableArray *__strong' with an expression of type 'NSArray *

这是给出警告的代码行:

    NSMutableArray *apptDataArray = [AppointmentInfo MR_findAllWithPredicate:nsp];

其中 MR_findAllWithPredicate 返回一个 NSArray。我一直在阅读 SO 和 Google 中的所有帖子,但没有发现类似的内容。我认为这很简单,但我需要帮助。

4

2 回答 2

4

NSArray不是,因此指针NSMutableArray兼容并且在其上调用变异方法会崩溃。您可以采用另一种方式,因为 an是NSMutableArray NSArray类。

您可以使用以下方法NSMutableArray从返回值中生成+[NSMutableArray arrayWithArray:]

NSMutableArray *apptDataArray = [NSMutableArray arrayWithArray:[AppointmentInfo MR_findAllWithPredicate:nsp]];

如果您的方法曾经返回nil,请创建一个变量并在创建可变数组之前进行NSArray *检查。nil

于 2013-08-21T15:39:04.183 回答
3

除了 BergQuester 的回答之外,还有一种从数组中获取可变数组的更短方法:

NSMutableArray *apptDataArray = [[AppointmentInfo MR_findAllWithPredicate:nsp] mutableCopy];
于 2013-08-21T15:56:14.580 回答