2010-06-19 114 views
0

我遇到了一個變量被標記爲「超出範圍」的問題。Objective-C變量超出範圍

下面的方法可以在我的代碼中找到:

- (void)CampaignComplete:(Campaign *)controller Picked:(NSString *)value { 
    selectedCampaign = [[NSString alloc] initWithString: value]; 

中命名的變量的值「值」可以由調試器看到。但是,當我將其分配給變量selectedCampaign並繼續逐步通過所選程序時,Campaign將超出範圍。

這裏是所選廣告的東西從.H:

@interface .....{ 
    NSString *selectedCampaign; 
} 
@property (retain) NSString *selectedCampaign; 
@end 

誰能告訴我什麼,我做錯了什麼?非常感謝你!

+0

該對象是否仍在範圍內?它的dealloc方法是否被調用併發布selectedCampaign? – Colin 2010-06-19 15:18:50

+0

這是程序中唯一使用它的地方。 – 2010-06-19 15:22:40

+0

是的,但是如果你已經分配並保留了一個「.....」對象,然後調用CampaignComplete,然後發佈.... 。對象,如果在你釋放selectedCampagn的dealloc方法中(如你所願),那麼selectedCampaign將超出範圍。你確定這個.....對象還活着嗎? – Colin 2010-06-19 15:56:28

回答

0

使用self.selectedCampaign清理的問題...現在是在範圍上由於某種原因

0

你完全是指調試時間「範圍內」與「超出範圍」問題,而不是編譯時, 對?

如果是這樣,則問題是調試器中的一個已知錯誤,它在以後的版本中得到修復。我不確定錯誤修復是否在調試器的發貨版本中。

0

我認爲字符串值中的數據不是字符串格式