【问题标题】:Objective-C Incompatible pointer types assigning to NSMutableArray from NSArray从 NSArray 分配给 NSMutableArray 的 Objective-C 不兼容的指针类型
【发布时间】:2017-05-19 23:26:03
【问题描述】:

我有这个代码

      [[self.client dataClient] getEntities:@"book" query:nil
                    completionHandler:^(ApigeeClientResponse *result)                          {
                        if (result.transactionState ==kApigeeClientResponseSuccess) {
                            _objects = result.response[@"entities"];
                        } else {
                            _objects = @[]; //"Incompatible pointer types assigning to NSMutableArray from NSArray"
                        }
                        [self.tableView reloadData];
                    }];

它显示错误“从 NSArray 分配给 NSMutableArray 的指针类型不兼容”

【问题讨论】:

  • 所以然后分配[NSMutableArray array]。

标签: objective-c apigee-baas


【解决方案1】:

_objects 在 NSArray 中实现,即使在 NSMutableArray 上调用时也会返回 NSArray。

分配[NSMutableArray array];

【讨论】:

    【解决方案2】:

    您正在尝试将NSArray (@[]) 分配给NSMutableArray 类型的变量。

    替换:

     _objects = @[];
    

    与:

    _objects = @[].mutableCopy;
    

    即使你没有在第一个 if 子句中提到错误,你也必须替换它。

    _objects = [NSMutableArray arrayWithArray:result.response[@"entities"]];
    

    【讨论】:

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