Objective-C Несовместимые типы указателей, присваиваемые NSMutableArray из NSArray

У меня есть этот код

      [[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];
                    }];

Это показывает мне ошибку "Несовместимые типы указателей, назначающие NSMutableArray из NSArray"

2 ответа

_objects реализуется в NSArray и возвращает NSArray даже когда вызвано на NSMutableArray,

назначать [NSMutableArray array];

Вы пытаетесь помочь NSArray (@[]) к переменной типа NSMutableArray,

Заменить:

 _objects = @[];

с:

_objects = @[].mutableCopy;

Даже если вы не упомянули ошибку в первом предложении if, вы также должны заменить это.

_objects = [NSMutableArray arrayWithArray:result.response[@"entities"]];
Другие вопросы по тегам