Swift 类型';NSFastEnumerationIterator.Element';(aka';Any';)不符合协议';任何对象';
我正在尝试将我的应用程序更新为Swift 3.0,但出现错误:Swift 类型';NSFastEnumerationIterator.Element';(aka';Any';)不符合协议';任何对象';,swift,swift3,Swift,Swift3,我正在尝试将我的应用程序更新为Swift 3.0,但出现错误:Type'NSFastEnumerationIterator.Element'(也称为'Any')不符合协议'AnyObject' 在线: self.friends.append(Friend(userName: (detailData as AnyObject).value["userName"] as! String, phoneNumber: detailData.value["phoneNumber"] as!
Type'NSFastEnumerationIterator.Element'(也称为'Any')不符合协议'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))
如何重构此文件?鉴于您的代码,我认为
detailData
的类型为nsfastnumerationiterator.Element
:
您正在将一个NSFastEnumerationIterator.Element
强制转换为AnyObject
:
(detailData as AnyObject)
但是NSFastEnumerationIterator.Element
s是结构,所以将AnyObject
更改为Any
:
(detailData as Any)
这样的代码是不可读、不可调试和不可管理的。我强烈建议你把它分成大约6行,这样每一行都是可读的和可调试的。你的代码中没有迭代器。