无法从模型中获取价值

时间:2011-12-16 12:39:19

标签: objective-c ios

当我尝试获取非null变量时,我收到SIGABRT。代码:

NSLog(@"%@", appDelegate.xmlData.magDictionary);
for (Magazine *ibb in appDelegate.xmlData.magDictionary) {
        NSLog(@"%@", [ibb title]);
}

输出:

   {
        1 = "<Magazine: 0x6c8fe10>";
        2 = "<Magazine: 0xf168d00>";
        3 = "<Magazine: 0xf169f50>";
        4 = "<Magazine: 0xf16b6d0>";
        5 = "<Magazine: 0xf170490>";
        6 = "<Magazine: 0xf1716c0>";
        7 = "<Magazine: 0xf172a80>";
        8 = "<Magazine: 0xf173f10>";
    }

和NSLog上的SIGABRT(@“%@”,[ibb title]); 杂志模型:@synthesize标题,键,预告片,标签,项目,progressBar;

1 个答案:

答案 0 :(得分:1)

根据评论,您的Magazine初始化程序似乎出错了 对属性使用retain模式并不重要,但我会使用copy代替字符串。

无论如何,来自title的{​​{1}}字符串在分配到originalMag的{​​{1}} ivar时不会被保留或复制,因此我打赌它在尝试打印任何值之前取消分配,导致崩溃。

另一点,做:

title

会产生内存泄漏(您仍然不会保留原始Magazine) 像这样重写初始化器:

title = [[NSString alloc] init];
title = [originalMag title];

这可以解决您的应用崩溃问题。