2012-01-13 82 views
0

當控件在此處出現時,我的應用程序崩潰[self loadNextList]。我不確定爲什麼會發生這種情況。如果您發現問題,請告訴我。將NSString分配給NSString時,我的應用程序崩潰

這是第一次,它工作我沒有看到任何問題。並且當再次調用loadNextList方法時,它會崩潰。當崩潰時,在控制檯中找不到任何錯誤消息。

NSString *myTierTwoID; 
@property(nonatomic,retain)NSString *myTierTwoID; 

-(void)getData{ 

myTierTwoID = [myTierTwoDict objectForKey:myTierTwoTitle]; 

[self loadNextList]; 

} 

-(void)loadNextList{ 
//========================== 

    NSLog(@"%@ lloo",myTierTwoID); 

    NSString *aTierTwoId = [NSString stringWithFormat:@"%d", [myTierTwoID intValue] + 1]; 

    NSLog(@"%@ aTierTwoId",aTierTwoId); 

    myTierTwoID = aTierTwoId; // here it crashes the app 

    NSLog(@"%@ lloo",myTierTwoID); 
} 
+3

這個問題將是一個很大更多的信息,如果你可以添加喜歡的細節....你有什麼樣的崩潰?是否有任何其他信息出現在控制檯中?我看到'保留'在那裏...但只是爲了確保,你是否使用ARC? – 2012-01-13 05:25:58

+0

沒有在控制檯中發現崩潰 – user198725878 2012-01-13 05:26:55

+0

@ user198725878當應用程序崩潰時,必須有一些錯誤消息。請張貼該消息。 – PengOne 2012-01-13 05:28:19

回答

2

酒店簽名需要一個保留的價值,所以你應該這樣做,而不是:

self.myTierTwoID = [myTierTwoDict objectForKey:myTierTwoTitle]; 

self.myTierTwoID = aTierTwoId; 
+0

感謝您的答案,做了竅門 – user198725878 2012-01-13 05:38:05

+0

有一個問題,我需要使用自我時,將值分配給保留的對象?爲什麼?請讓我知道 – user198725878 2012-01-13 05:40:15

+0

合成的屬性實現比簡單的賦值複雜得多。 _retained_限定符涉及釋放舊的值對象並保留新的值。沒有預先「自我」。你跳過內部綜合實現(跳過發佈/保留),只是分配一個值。如果您不釋放舊值對象,則會泄漏內存。如果你不保留新的,那麼當它在別處發佈時你會崩潰。 – Costique 2012-01-13 10:15:13

相關問題