斯威夫特 – ‘[任务]?不可转换为’Optional <[Any]>'

斯威夫特 – ‘[任务]?不可转换为’Optional <[Any]>',第1张

概述我做了扩展 extension Optional where Wrapped == [Any] { var isNilOrEmpty: Bool { get { if let array = self { return array.count == 0 } else { return 我做了扩展

extension Optional where Wrapped == [Any] {   var isNilOrEmpty: Bool {       get {           if let array = self {              return array.count == 0           } else {            return false           }       }    }}

然后我尝试像这样使用它

if fetchedResults.fetchedobjects.isNilOrEmpty { ... }

我收到了错误

‘[Task]?’ is not convertible to ‘Optional<[Any]>’

但是,按照规范

Any can represent an instance of any type at all,including function types.

这里我的错误是什么?
如果重要的话,Task是NSManagedobject的子类.

解决方法 好吧,[Task]和[Any]是两种不同的类型,Wrapped == [Any]不起作用.

正确的方法是限制Wrapped by protocol,而不是特定的类型.

extension Optional where Wrapped: Collection {    var isNilOrEmpty: Bool {        get { // `get` can be omitted here,btw            if let collection = self {                return collection.isEmpty // Prefer `isEmpty` over `.count == 0`            } else {                return true // If it's `nil` it should return `true` too            }        }    }}
总结

以上是内存溢出为你收集整理的斯威夫特 – ‘[任务]?不可转换为’Optional <[Any]>'全部内容,希望文章能够帮你解决斯威夫特 – ‘[任务]?不可转换为’Optional <[Any]>'所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1005745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存