堅持我。我有視覺障礙,以前從未使用過此網站,並且可能不會按照您習慣的格式進行發佈。我對此處的任何無意失禮表示歉意。爲什麼我的單身人士課程不能返回一個值將保持在範圍內
在iOS的項目中使用的Objective-C ...
我有一個單獨的類中,這似乎是對Objective-C的通常的方式成立。它主要是一系列接受NSString值的方法,解釋它們並返回其他內容。在下面的代碼中,我將事物簡化到最低限度,以強調我遇到的問題。
從單例類:
- (NSUInteger) assignControlState:(NSString *)state {
// excerpted for clarity...
return UIControlStateNormal; // an example of what might be returned
}
現在,另一個類的一個實例,試圖用這種方法,像這樣:
- (void) buttonSetup:(UIButton*)button {
[button setTitle:@"something" forState:[[SingletonClass accessToInstance] assignControlState:@"normal"]];
}
此代碼實際工作。 HOwever,當系統繪製包含按此方式設置標題的按鈕的UI時,會發生EXC_BAD_ACCESS錯誤。
如果assignControlState方法被移入與buttonSetup方法相同的類中,則不會生成錯誤。
我猜這是關於蘋果公司內存管理的一些事情,我沒有完全理解,以及事情如何進出範圍,但對於我的生活,我無法弄清楚我在哪裏出錯了。
HO有人可以幫忙。謝謝。
很難說這些代碼行。從附加的調試器開始(不僅僅是調試模式),您將獲得非常有用的信息。 – Eiko 2010-11-08 23:53:02
這與範圍無關。這只是不正確的內存管理,通常與Objective-C中的範圍無關。 – Chuck 2010-11-08 23:59:54