Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下代码在 Swift 3 上崩溃,谁能解释一下原因?
struct S { let a:Int } let t = [S(a: 8)] let u:AnyObject = t as NSObject let v:[S] = u as! [S]
那是因为在 Swift 3 中的结构数组是 NSObject(它不在 Swift 2 中)并且它不能很好地转换为 NSArray?为什么是 NSObject?
一个可能的解决方案是使用带有可选向下转换的条件绑定:
if let v = u as? [S] { /* */ }
不知道为什么强制向下转换不起作用。可能会发生一些时髦的事情NSObject。
NSObject