我是新来的,但我一直在阅读。莫斯特利我找到了我想要的东西,但现在我被卡住了。阅读文档并询问谷歌没有帮助,所以我去了:
我有一个应用程序,使用EKEventstore将事件添加到用户的日历中。我曾经从一个单一的视图控制器中做到这一点,包括选择一个用户的日历的功能。我一直在代码中多次创建eventstore,一切正常。
现在我已将我的应用程序升级为更专业的编码,包括多个视图控制器。一个是处理日历选择器(列出所有日历的简单表视图),另一个是创建新事件并将其保存到日历。
EKEvenstore在appdelegate.h中声明
EKEventStore *es;
每个视图控制器在其viewWillAppear方法中定义evenststore:
es=[[EKEventStore alloc]init];
一切正常,我可以从eventstore加载和安全事件,但是一旦我切换到日历选择器视图控制器(只是加载它),然后返回到创建事件的视图控制器,应用程序崩溃。新的发布后我一切都很好。任何想法都受到高度赞赏。
这是异常抛出后的堆栈:
2011-08-25 15:35:18.795 Dutysheet Wx [13864:707] - [UINavigationButton refresh]:无法识别的选择器发送到实例0x688f0a0 2011-08-25 15:35:18.822 Dutysheet Wx [13864:707] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UINavigationButton refresh]:无法识别的选择器发送到实例0x688f0a0' * 在第一次投掷时调用堆栈: ( 0 CoreFoundation 0x30b1364f exceptionPreprocess + 114 1 libobjc.A.dylib 0x3462ec5d objc_exception_throw + 24 2 CoreFoundation 0x30b171bf - [NSObject(NSObject)doesNotRecognizeSelector:] + 102 3 CoreFoundation 0x30b16649 __ 转发 + 508 4 CoreFoundation 0x30a8d180 _CF_forwarding_prep_0 + 48 5 EventKit 0x339bfe1b - [EKEventStore _databaseChangedExternally] + 682 6 EventKit 0x339bf49f DatabaseChanged + 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 main + 82 19 Dutysheet Wx 0x000029f8 start + 52 ) 抛出'NSException'实例后调用终止