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"]];