簡體   English   中英

無法從模型中獲得價值

[英]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。

無論如何,來自originalMagtitle字符串在分配給Magazinetitle 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM