prepareForSegue завершается ошибкой, когда вызывается [detailviewcontroller setObject] - PullRequest
0 голосов
/ 06 декабря 2011
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"ShowDetail"]) {
        DetailViewController *detailViewController = [segue destinationViewController];

        ListViewCell *cell = (ListViewCell *)sender;
        Category *category = cell.Category;
        NSLog(@"cell category = %@", cell.Category.Name);
        //[detailViewController setCategory:category];
        detailViewController.Category = category;
    }
}

NSLog четко показывает правильный cell.Category.Name, поэтому объект Category хорош.

Но в этой строке ничего не получается

detailViewController.Category = category;

Немедленно останавливается на следующей строке с ошибкой «Поток 1 Программа получила сигнал sigabrt»

#import "AppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

старый код:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"ShowDetail"]) {
        DetailViewController *detailViewController = [segue destinationViewController];

        ListViewCell *cell = (ListViewCell *)sender;
        Category *category = cell.Category;
        NSLog(@"cell category = %@", cell.Category.Name);
        //[detailViewController setCategory:category];
        detailViewController.Category = category;
    }
}

новый код:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"ShowDetail"]) {
        DetailTabViewController *detailTabViewController = [segue destinationViewController];

        ListViewCell *cell = (ListViewCell *)sender;
        Category *category = cell.Category;
        NSLog(@"cell category = %@", cell.Category.Name);
        //[detailViewController setCategory:category];
        detailTabViewController = category;
    }
}
0 голосов
/ 06 декабря 2011

Вероятно, объект в detailViewController не понимает сообщение setCategory:.Для этого должны быть сообщения об ошибках в консоли отладки.Если нет, отправьте сообщения, которые являются в консоли отладки.

Кстати, имена свойств (или имен методов) не следует начинать с заглавных букв.Это сбивает с толку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...