1
我初始化NSCalendar在viewDidLoad中是這樣的:NSCalendar崩潰的應用程序
gregorian = [NSCalendar currentCalendar];
日曆在相應的.h文件中這樣宣稱:
NSCalendar *gregorian;
當訪問從日曆方法我的應用程序崩潰:
- (void)someMethod{
unsigned int unitFlags;
unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit;
[gregorian
components:unitFlags
fromDate:[NSDate date]
toDate:[NSDate date]
options:0];
}
這似乎是相關的從崩潰日誌:
異常類型:EXC_BAD_ACCESS(SIGBUS)
異常代碼:KERN_PROTECTION_FAILURE在0x0000000000000015
崩潰螺紋:0調度隊列:com.apple.main線程
特定應用信息:
objc_msgSend()選擇名稱:組件:FROM日期:TODATE:選擇:
iPhone模擬器225,iPhone OS 3.2(新iPad/7W367a)
任何想法?
感謝
感謝您的回答。我仍然想知道爲什麼我可以用UIView做同樣的事情,它可以工作(沒有保留)? – DeepSeaFish 2010-09-22 11:29:36
如果你沒有保留一個自動釋放的對象,你打算作爲一個實例變量堅持下去,你做錯了。我們需要查看似乎正在解決該問題的代碼。然而,一般來說,內存管理錯誤可能表現出奇怪的行爲(即,它們並不總是立即崩潰或可靠地崩潰)。然而,在你發佈的代碼中,你並沒有保留日曆對象,然後試圖訪問它,這是一個錯誤。 – 2010-09-22 14:11:30
DeepSeaFish:我曾經在Cocoa的Bindings中遇到過一個問題,那就是我使用autoreleasing構造函數('arrayWith ...:')來創建一個擁有我的控制器的數組,並且無法保留它。因此,這個陣列是因爲死亡 - 它沒有網絡保留。然後我裝了一個筆尖。我在綁定到暴露陣列的屬性的筆尖上有一個視圖。當視圖被取消存檔時,其綁定保留陣列並將其從死亡中拯救出來。有時你不能依靠bug的表現,但它仍然是一個錯誤。 – 2010-09-22 21:15:41