Подготовьтесь к переходу Несовместимый указатель

Я использую раскадровку с TableView и файлом plist, используя этот источник:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([@"detailList" isEqual:segue.identifier]) {

        NSIndexPath *index = [self.tableView indexPathForCell:sender];
        DetailViewController *detail = [_saved objectAtIndex:index.row];
        [[segue destinationViewController] setSaved:detail];
    }
}

И работает, если я нажму на стол, переход покажет мне правильный контент, но в строке:

[[segue destinationViewController] setSaved:detail];

В предупреждении указано:

Несовместимые типы указателей, отправляющие «DetailViewController *__strong» в параметр типа «NSMutableArray *»

Что мне нужно сделать, чтобы исправить и удалить это предупреждение?

спасибо


person BlackSheep    schedule 19.03.2013    source источник
comment
Как объявляется метод setSaved:?   -  person Adam    schedule 19.03.2013
comment
Вы уверены, что деталь на самом деле является DetailViewController*? Это означало бы, что _saved — это массив DetailViewController? Это не кажется правильным.   -  person Firoze Lafeer    schedule 19.03.2013
comment
В DetailViewController я использовал SAVED в режиме: @property (nonatomic, strong) NSDictionary *saved; а в TableViewController это: @property (nonatomic, strong) NSMutableArray *saved;   -  person BlackSheep    schedule 19.03.2013


Ответы (1)


Вы отправляете изменяемый объект (из NSMutableArray) в неизменяемый объект (NSDictionary)

@property (nonatomic, strong) NSDictionary *saved;

здесь NSDictionary является неизменным, и вы отправляете объект из NSMutableArray (его изменчивый).

так что просто сделайте изменяемый словарь

@property (nonatomic, strong) NSMutableDictionary *saved;
person Rajneesh071    schedule 19.03.2013
comment
Измените его, но по-прежнему продолжайте использовать то же предупреждение о NSMutableDictionary T_T. - person BlackSheep; 19.03.2013
comment
Вы пробовали DetailViewController *detail = (DetailViewController *)[_saved objectAtIndex:index.row]; - person Rajneesh071; 16.12.2013