[英]Unable to get value from model
當我嘗試獲取非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(@“%@”,[ibb標題])上的SIGABRT; 雜志模型:@synthesize標題,鍵,預告片,標簽,項目,progressBar;
根據評論,看來您在Magazine
初始化程序中做錯了。
對屬性使用retain
模式並不重要,但是我應該使用copy
代替string。
無論如何,來自originalMag
的title
字符串在分配給Magazine
的title
ivar時不會保留或完全復制,因此我敢打賭,在嘗試打印任何值之前會取消分配它,從而導致崩潰。
還有一點,這樣做:
title = [[NSString alloc] init];
title = [originalMag title];
會產生內存泄漏(並且您仍然沒有保留原始title
)。
像這樣重寫初始化器:
-(id)initWithMagazine:(Magazine *)originalMag {
.....
title = [[originalMag title] copy];
// or title = [[NSString alloc] initWithString:[originalMag title]];
....
}
這應該可以解決您的應用崩潰的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.