Ios 下标swift 2的用法不明确
在swift 2中出现了这样一个问题:“下标”的用法模棱两可 有人知道发生了什么事吗Ios 下标swift 2的用法不明确,ios,xcode,swift2,Ios,Xcode,Swift2,在swift 2中出现了这样一个问题:“下标”的用法模棱两可 有人知道发生了什么事吗 var plistDict: NSDictionary? if let path = NSBundle.mainBundle().pathForResource("myTip", ofType: "plist") { plistDict = NSDictionary(contentsOfFile: path) let plistArray = p
var plistDict: NSDictionary?
if let path = NSBundle.mainBundle().pathForResource("myTip", ofType: "plist") {
plistDict = NSDictionary(contentsOfFile: path)
let plistArray = plistDict!["tip"]
let randV = Int(arc4random_uniform(UInt32(plistArray!.count)))
------->>>> let tipMessage = plistArray![randV] //error here???
let tipAlert = UIAlertController(title: "Something...", message: tipMessage as? String, preferredStyle: UIAlertControllerStyle.Alert)
tipAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))
当您从
plistDict
中获取plistaray
时,它不知道它是什么类型的元素,因此它认为它是AnyObject?
。正因为如此,它不知道如何处理你给它的下标,因为它不知道如何处理AnyObject
类型的下标。如果你投下plistDict![“tip”]
当将其分配给plistaray
时,它应该能够计算出相应的类型。当您从plistDict
中获取plistaray
时,它不知道它是什么类型的元素,因此它认为它是任何对象?
。正因为如此,它不知道如何处理你给它的下标,因为它不知道如何处理AnyObject
类型的下标。如果你投下plistDict![“tip”]
将其分配给plistaray
时,它应该能够计算出相应的类型。类似的内容?让普利斯塔雷=普利斯特迪克特![“提示”]as!NSArray让randV=Int(arc4random_uniform(UInt32(plistArray!.count)))让tipMessage=plistArray[randV]是的,看起来差不多正确。虽然你应该尽量少用隐式展开选项,因为这样不太安全。像这样的吗?让普利斯塔雷=普利斯特迪克特![“提示”]as!NSArray让randV=Int(arc4random_uniform(UInt32(plistArray!.count)))让tipMessage=plistArray[randV]是的,看起来差不多正确。虽然你应该尽量少用隐式展开选项,因为这样不太安全。