Ios EKCalendar and Error Domain=NSMachErrorDomain代码=268435459
我正在探索EKEventKit。 我连接iPhone并打电话安装日历Ios EKCalendar and Error Domain=NSMachErrorDomain代码=268435459,ios,calendar,ekeventkit,Ios,Calendar,Ekeventkit,我正在探索EKEventKit。 我连接iPhone并打电话安装日历 EKEventStore *eventDB = [[EKEventStore alloc] init]; NSArray * calendars = [eventDB calendars ]; 但是,当我记录日历时,会收到此错误消息 “CADObjectGetIntProperty失败,出现错误 Domain=NSMachErrorDomain Code=268435459“无法执行该操作 完整的。(马赫错误26843545
EKEventStore *eventDB = [[EKEventStore alloc] init];
NSArray * calendars = [eventDB calendars ];
但是,当我记录日历时,会收到此错误消息
“CADObjectGetIntProperty失败,出现错误
Domain=NSMachErrorDomain Code=268435459“无法执行该操作
完整的。(马赫错误268435459-(ipc/发送)目标无效
港口“
有人知道这是什么,为什么我会得到它吗。
谢谢
雷扎我发现了这个问题
我以前在代码中加载并保留了EKEventStore。删除其中一个解决了这个问题
Reza我在控制台上收到了相同的警告日志 早期代码:
"CalendarEventHandler.m"
eventStore = [[EKEventStore alloc] init];
"CalendarEventHandler.h"
@property (nonatomic,strong) EKEventStore *eventStore;
代码已修改
self.eventStore = [[EKEventStore alloc] init];//This helped me to remove warning
@对
EKEventStore
classEKEventsStore.h
文件的讨论说明:
“通常最好保留事件存储的长期实例,最有可能是应用程序中的单例实例。”
这里也写了同样的内容:连接到事件存储
部分:
“EKEventStore对象需要相对较长的时间来初始化和释放。因此,您不应该为每个与事件相关的任务初始化和释放单独的事件存储。相反,在应用程序加载时初始化单个事件存储,并重复使用它以确保您的连接是长期的。”
因此,正确的方法是:
@interface MyEventStore : EKEventStore
+ (MyEventStore *)sharedStore;
@end
+ (MyEventStore *)sharedStore
{
static dispatch_once_t onceToken;
static MyEventStore *shared = nil;
dispatch_once(&onceToken, ^{
shared = [[MyEventStore alloc] init];
});
return shared;
}
@end
并使用它调用[MyEventStore sharedStore]
此方法还修复了警告。将实例“eventDB”设置为类成员变量或属性可以解决此问题。我遇到了相同的问题,我认为它有相同的根本原因,我尝试了[store release];没用,你实际上是如何修复的?我在我的项目中使用自动引用计数。启动时,我创建了一个EKEventStore,并将其分配给一个变量,因此它被保留,然后我在所有日历调用中使用该EventStore。是的,这就是我最终采用的方法。谢谢。谢谢,这只是一个iOS5错误,现在已修复。谢谢ouApple在本文中提到这是一个已知的bug-