Error pushing dirty properties for EKPersistentLocation to daemon: Error Domain=NSMachErrorDomain Code=4097 "unknown error code"
Connection interrupted!
关于为什么我不能再保存我的事件有什么想法吗?
NSString *eventIdentifier = ...
EKEventStore *store = [EKEventStore new];
EKEvent *event = [store eventWithIdentifier:eventIdentifier];
if(event == nil) {
event = [EKEvent eventWithEventStore:store];
}
//fill event code here
//save event
NSError *error = nil;
BOOL success = [store saveEvent:event span:EKSpanThisEvent commit:YES error:&error];
if(error) {
@throw error;
}
if(!success) {
@throw [Error ERROR_EVENT_SYNC_FAILED_NO_ERROR];
}
有趣的是,没有生成错误对象,但成功为 NO。错误代码和消息不是特别有用。我不确定脏属性是什么意思,但我不是在重复使用旧事件,而是每次都从商店抓取一个或制作一个新事件。我也不知道连接中断是什么意思。
如有任何帮助,我们将不胜感激。
最佳答案
我有一个类似的错误。这是由请求访问 .event 类型的事件并尝试保存提醒引起的。如果您将日历条目保存为事件,则请求访问 .event 如果您请求访问提醒,则请求访问类型为 .reminder。
以下是请求访问提醒的示例。
override func viewWillAppear(_ animated: Bool) {
self.eventStore = EKEventStore()
self.reminders = [EKReminder]()
self.eventStore.requestAccess(to: .reminder, completion: requestAccessCompletionHandler)
}
func requestAccessCompletionHandler (granted: Bool, error: Error?) {
NSLog("requestAccessCompletionHandler")
if (granted) {
let predicate = self.eventStore.predicateForReminders(in: nil)
self.eventStore.fetchReminders(matching: predicate, completion: { (reminders: [EKReminder]?) -> Void in
self.reminders = reminders
DispatchQueue.main.async {
self.tableView.reloadData()
}
})
} else {
print("The app is not permitted to access reminders, make sure to grant permission in the settings and try again")
}
}
关于ios - 保存 iOS 日历事件现在出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612398/