Swift3 iOS 10请求授权

Swift3 iOS 10请求授权,swift3,ios10,mpmedialibrary,Swift3,Ios10,Mpmedialibrary,我不知道这段代码出了什么问题,它总是告诉我这样一件事:致命错误:在展开可选值时意外发现nil 当我尝试访问mpmediabrary时,我得到了这样的信息,代码如下: if (MPMediaLibrary.authorizationStatus() == MPMediaLibraryAuthorizationStatus.notDetermined) { // Access has not been determined. MPMediaLibra

我不知道这段代码出了什么问题,它总是告诉我这样一件事:
致命错误:在展开可选值时意外发现nil
当我尝试访问
mpmediabrary
时,我得到了这样的信息,代码如下:

if (MPMediaLibrary.authorizationStatus() == MPMediaLibraryAuthorizationStatus.notDetermined) {

            // Access has not been determined.
            MPMediaLibrary.requestAuthorization({ (status: MPMediaLibraryAuthorizationStatus) in

                if (status == MPMediaLibraryAuthorizationStatus.authorized) {
                    let albumsQuery: MPMediaQuery = MPMediaQuery.albums()
                    let albumItems: [MPMediaItemCollection] = self.albumsQuery.collections! as [MPMediaItemCollection]
                }
            })
        }

测试选项,而不是强制打开它们。@Phillip Mills我不懂,我的英语是一周,我是swift新手:)学习swift选项。你真的需要理解他们才能使用语言。对于您的情况,当您使用
If(status=.authorized){//Access已被授予。让albumItems:[MPMediaItemCollection]=AlbumSkry.collections!作为[MPMediaItemCollection]如果albumItems.isEmpty==false{print(“此处为1”)}
不要使用
。测试
.collections
是否实际具有有效值。测试选项,而不是强制展开它们。@Phillip Mills我不懂,我的英语是一周,我是swift新手:)学习swift选项。使用该语言时,你真的需要理解它们。就你的情况而言,当你使用
您是说您承诺变量为非零。如果您违反该承诺,您的应用程序将崩溃,并显示您提到的消息。当我按“允许”时,它会显示该错误,但我们重新启动应用程序时,错误消失了,我使用的代码是:
If(status=.authorized){//已授予访问权限。如果albumItems.isEmpty==false{print(“此处1”)},则将albumItems:[MPMediaItemCollection]=AlbumSkry.collections!设为[MPMediaItemCollection]
不要使用
。测试
.collections
是否实际具有有效值。