Сбой EKEventstore при доступе с разных контроллеров - PullRequest
4 голосов
/ 25 августа 2011

Я новичок здесь, но я много читал. В основном я нашел то, что искал, но теперь я застрял. Чтение документации и обращение в 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'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...