当我尝试获取非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;
答案 0 :(得分:1)
根据评论,您的Magazine
初始化程序似乎出错了
对属性使用retain
模式并不重要,但我会使用copy
代替字符串。
无论如何,来自title
的{{1}}字符串在分配到originalMag
的{{1}} ivar时不会被保留或复制,因此我打赌它在尝试打印任何值之前取消分配,导致崩溃。
另一点,做:
title
会产生内存泄漏(您仍然不会保留原始Magazine
)
像这样重写初始化器:
title = [[NSString alloc] init];
title = [originalMag title];
这可以解决您的应用崩溃问题。