我遇到了一個變量被標記爲「超出範圍」的問題。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
誰能告訴我什麼,我做錯了什麼?非常感謝你!
該對象是否仍在範圍內?它的dealloc方法是否被調用併發布selectedCampaign? – Colin 2010-06-19 15:18:50
這是程序中唯一使用它的地方。 – 2010-06-19 15:22:40
是的,但是如果你已經分配並保留了一個「.....」對象,然後調用CampaignComplete,然後發佈.... 。對象,如果在你釋放selectedCampagn的dealloc方法中(如你所願),那麼selectedCampaign將超出範圍。你確定這個.....對象還活着嗎? – Colin 2010-06-19 15:56:28