我做了扩展
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]和[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 } } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。