Я инициализация 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
Crashed Тема: 0 очереди отправки: com.apple.main-нить
Application Specific Информация:
objc_msgSend) имя селектора (: компоненты: FromDate: Todate: варианты:
iPhone Simulator 225, iPhone OS 3.2 (IPad/7W367a)
Любые идеи?
Благодаря
Спасибо за ваш ответ. Мне все еще интересно, почему я могу сделать то же самое с UIView, и он работает (не сохраняя)? – DeepSeaFish
Если вы не сохраняете автореализованный объект, который вы планируете придерживаться в качестве переменной экземпляра, вы делаете это неправильно. Нам нужно увидеть код, который, кажется, работает, чтобы ответить на этот вопрос. В целом, однако, ошибки управления памятью могут показаться странными (т. Е. Они не всегда сбой сразу или надежно). Однако в опубликованном коде вы не сохраняете объект календаря, а затем пытаетесь получить к нему доступ позже, и это ошибка. –
DeepSeaFish: У меня когда-то была проблема с Bindings in Cocoa, где я использовал конструктор autoreleasing ('arrayWith ...:'), чтобы создать массив, принадлежащий моему контроллеру, и не смог его сохранить. Таким образом, этот массив был вызван смертью - у него не было чистой фиксации. Затем я загрузил наконечник. У меня было представление в nib, связанное с свойством, которое отображало массив. Когда представление получило unarchived, его привязка сохранила массив и спасла его от смерти. Иногда вы не можете полагаться на проявление ошибки, но это все еще ошибка. –