首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALAssetsGroup!不是“ALAssetsGroup”的子类型

ALAssetsGroup!不是“ALAssetsGroup”的子类型
EN

Stack Overflow用户
提问于 2014-06-09 17:13:09
回答 1查看 191关注 0票数 0

我的应用程序中有一个loadAlbums方法,它使用AssetsLibrary的单例实例加载资产。到目前为止,我的代码如下:

代码语言:javascript
复制
func loadAlbums(){
    let library = IAAssetsLibraryDefaultInstance

    library.enumerateGroupsWithTypes(ALAssetsGroupAll as ALAssetsGroupType,
        usingBlock: {(group:ALAssetsGroup, stop:Bool) in
            if group {
                self.albums.append(group)
            }
            else {
                self.tableView.performSelectorOnMainThread("reloadData", withObject: nil, waitUntilDone: true)
            }
        }, failureBlock: { (error:NSError) in println("Problem loading albums: \(error)") })

}

我所得到的错误是在usingBlock行的开头。编译器说:

ALAssetsGroup! is not a subtype of 'ALAssetsGroup'

这是什么意思?我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-09 17:23:19

您的块需要一个ALAssetsGroup作为group参数,但是它正在被传递一个带有ALAssetsGroup!类型的参数(一个隐式未包装的可选参数)。

最大的区别是,您要传递的值可以是零,但是您期望的类型不能为零

只需将签名更改为

代码语言:javascript
复制
{(group:ALAssetsGroup!, stop:Bool) in
  …
}

您的代码已经在检查组是否为零,因此这应该是您需要进行的唯一更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24125317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档