2010-09-22 3 views
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
Crashed Тема: 0 очереди отправки: com.apple.main-нить

Application Specific Информация:
objc_msgSend) имя селектора (: компоненты: FromDate: Todate: варианты:
iPhone Simulator 225, iPhone OS 3.2 (IPad/7W367a)

Любые идеи?

Благодаря

ответ

0

Вы не сохраняя свой календарь при назначении его на «григорианский», так оно прошло времени, когда вы к нему доступ.

+0

Спасибо за ваш ответ. Мне все еще интересно, почему я могу сделать то же самое с UIView, и он работает (не сохраняя)? – DeepSeaFish

+0

Если вы не сохраняете автореализованный объект, который вы планируете придерживаться в качестве переменной экземпляра, вы делаете это неправильно. Нам нужно увидеть код, который, кажется, работает, чтобы ответить на этот вопрос. В целом, однако, ошибки управления памятью могут показаться странными (т. Е. Они не всегда сбой сразу или надежно). Однако в опубликованном коде вы не сохраняете объект календаря, а затем пытаетесь получить к нему доступ позже, и это ошибка. –

+0

DeepSeaFish: У меня когда-то была проблема с Bindings in Cocoa, где я использовал конструктор autoreleasing ('arrayWith ...:'), чтобы создать массив, принадлежащий моему контроллеру, и не смог его сохранить. Таким образом, этот массив был вызван смертью - у него не было чистой фиксации. Затем я загрузил наконечник. У меня было представление в nib, связанное с свойством, которое отображало массив. Когда представление получило unarchived, его привязка сохранила массив и спасла его от смерти. Иногда вы не можете полагаться на проявление ошибки, но это все еще ошибка. –

Смежные вопросы