Я новичок здесь, но я много читал. В основном я нашел то, что искал, но теперь я застрял. Чтение документации и обращение в Google не помогли, поэтому я иду:
У меня есть приложение, которое добавляет события в календарь пользователя с помощью EKEventstore. Раньше я делал все это из одного контроллера представления, включая функцию выбора одного из календарей пользователя. Я несколько раз создавал хранилища событий в коде, и все работало нормально.
Теперь я обновил свое приложение до более профессионального кодирования, включая несколько контроллеров представления. Один из них управляет средством выбора календаря (простой просмотр таблицы со всеми календарями), другой - созданием и сохранением новых событий в календаре.
EKEvenstore объявлен в appdelegate.h
EKEventStore *es;
Каждый контроллер представления определяет четное хранилище в своем методе viewWillAppear:
es=[[EKEventStore alloc]init];
Все работает нормально, я могу загружать и сохранять события из и в хранилище событий, но как только я переключаюсь на контроллер представления средства выбора календаря (просто загружаю его), а затем возвращаюсь к контроллеру представления, который создает события, приложение вылетает. После нового запуска у меня все снова нормально. Любая идея высоко ценится.
Вот мой стек после броска исключения:
2011-08-25 15: 35: 18.795 Dutysheet Wx [13864: 707] - [UINavigationButton refresh]: нераспознанный селектор отправлен на экземпляр 0x688f0a0
2011-08-25 15: 35: 18.822 Таблица технического обслуживания Wx [13864: 707] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [UINavigationButton refresh]: нераспознанный селектор, отправленный экземпляру 0x688f0a0'
* стек вызовов при первом броске:
(
0 CoreFoundation 0x30b1364f исключение препроцесс + 114
1 libobjc.A.dylib 0x3462ec5d objc_exception_throw + 24
2 CoreFoundation 0x30b171bf - [NSObject (NSObject) делает NotRecognizeSelector:] + 102
3 CoreFoundation 0x30b16649 __ пересылка + 508
4 CoreFoundation 0x30a8d180 _CF_forwarding_prep_0 + 48
5 EventKit 0x339bfe1b - [EKEventStore _databaseChangedExternally] + 682
6 EventKit 0x339bf49f База данныхChanged + 18
7 CoreFoundation 0x30ae2d69 CFNotificationCenterDarwinCallBack + 24
8 CoreFoundation 0x30adfbdf __CFMachPortPerform + 210
9 CoreFoundation 0x30aeaa97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 26
10 CoreFoundation 0x30aec83f __CFRunLoopDoSource1 + 166
11 CoreFoundation 0x30aed60d __CFRunLoopRun + 520
12 CoreFoundation 0x30a7dec3 CFRunLoopRunSpecific + 230
13 CoreFoundation 0x30a7ddcb CFRunLoopRunInMode + 58
14 GraphicsServices 0x303fc41f GSEventRunModal + 114
15 GraphicsServices 0x303fc4cb GSEventRun + 62
16 UIKit 0x30ba3d69 - [UIApplication _run] + 404
17 UIKit 0x30ba1807 UIApplicationMain + 670
18 Dutysheet Wx 0x00002a83 основной + 82
19 Dutysheet Wx 0x000029f8 начало + 52
)
прекращение вызова после выброса экземпляра 'NSException'