OStack程序员社区-中国程序员成长平台

标题: ios - 无法在 Swift 4.2 中请求访问 IOS 日历的权限 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:57
标题: ios - 无法在 Swift 4.2 中请求访问 IOS 日历的权限

我已经尝试过请求允许将项目添加到 IOS 日历的早期示例。它们不适用于 Xcode 10.1 (Swift 4.2)。当我尝试编译代码时,出现错误。如果我注释掉以“EKEventstore.requestAccess”开头的行,代码将执行“.not.Determined”循环。

错误是“实例成员 'requestAccess' 不能用于类型 'EKEventStore';您的意思是使用此类型的值吗?”

谁能找到我的错误,以便 IOS 应用有权将事件添加到日历?

func SOGetPermissionCalendarAccess() {

    switch EKEventStore.authorizationStatus(for: .event) {

    case .authorized:
        print("Authorized")

    case .denied:
        print("Access denied")

    case .notDetermined:
        EKEventStore.requestAccess(to: .event, completion:
            {[weak self] (granted: Bool, error: Error?) -> Void in
                if granted {
                    print("Access granted")
                } else {
                    print("Access denied")
                }
        })

        print("Not Determined")
    default:
        print("Case Default")
        }

}



Best Answer-推荐答案


您应该如下创建事件存储实例,

let eventStore = EKEventStore()

之后,您可以像下面这样提出权限请求,

switch EKEventStore.authorizationStatus(for: .event) {

        case .authorized:
            print("Authorized")

        case .denied:
            print("Access denied")

        case .notDetermined:
            eventStore.requestAccess(to: .event, completion:
                {(granted: Bool, error: Error?) -> Void in
                    if granted {
                        print("Access granted")
                    } else {
                        print("Access denied")
                    }
            })

            print("Not Determined")
        default:
            print("Case Default")
        }

请引用 link了解更多信息。

关于ios - 无法在 Swift 4.2 中请求访问 IOS 日历的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53425093/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4