类型“NSFastEnumerationIterator.Element”(又名“Any”)不符合协议“AnyObject”
Posted
技术标签:
【中文标题】类型“NSFastEnumerationIterator.Element”(又名“Any”)不符合协议“AnyObject”【英文标题】:Type 'NSFastEnumerationIterator.Element' (aka 'Any') does not conform to protocol 'AnyObject' 【发布时间】:2016-10-30 00:37:16 【问题描述】:我正在尝试将我的应用程序更新到 Swift 3.0 并且遇到了错误:Type 'NSFastEnumerationIterator.Element' (aka 'Any') does not conform to protocol 'AnyObject'
上线:
self.friends.append(Friend(userName: (detailData as AnyObject).value["userName"] as! String, phoneNumber: detailData.value["phoneNumber"] as! String, status: "Friend", statusSort: 2, name: detailData.value["userName"] as! String, userID: detailData.key))
我该如何重构它?
【问题讨论】:
这样的代码是不可读、不可调试和不可管理的。我强烈建议你把它分成大约 6 行左右,这样每一行都是可读和可调试的。 您的代码中没有迭代器。 【参考方案1】:鉴于您的代码,我假设 detailData
的类型为 NSFastEnumerationIterator.Element
:
您正在将NSFastEnumerationIterator.Element
投射到AnyObject
:
(detailData as AnyObject)
但是NSFastEnumerationIterator.Element
s 是结构体,所以将AnyObject
改为Any
:
(detailData as Any)
【讨论】:
以上是关于类型“NSFastEnumerationIterator.Element”(又名“Any”)不符合协议“AnyObject”的主要内容,如果未能解决你的问题,请参考以下文章