var eventStore:EKEventStore?
@IBAction func bbbbbbb(sender: UIButton) {
if eventStore == nil {
eventStore = EKEventStore()
}
self.eventStore?.requestAccessToEntityType(EKEntityType.Event, completion: { (aBool, error) -> Void in
print(error, aBool)
})
}
print是nil,false总是...它的行为就像用户已经拒绝访问,但是promt永远不会被显示出来。相同的代码当然适用于同一设备上的新空白应用程序。我尝试过的事情:在设备上休息设置,模拟器并使用从未安装应用程序的新设备,当然还有清理项目,但没有成功。此外,在应用设置中,日历权限也不会显示。对于发生了什么的任何想法?
答案 0 :(得分:5)
使用 iOS 10 ,您需要在List<? super Object> foo = new ArrayList<>();
foo.add(1);
foo.add(2);
foo.add("cabbage");
for(Object o : foo) {
System.out.println(o);
}
中添加以下密钥以允许应用访问日历(如果不是,请求访问时应用只会崩溃):
plist
见这里:
https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html
答案 1 :(得分:1)
尝试以下代码
let eventStore = EKEventStore()
eventStore.requestAccessToEntityType(EKEntityType.Event) { (granted: Bool, error: NSError?) -> Void in
if granted{
print("Got access")
let defaultCalendar = eventStore.defaultCalendarForNewEvents
print("\(defaultCalendar.calendarIdentifier)")
}else{
print("The app is not permitted to access reminders, make sure to grant permission in the settings and try again")
}
}