在swift 2中出现了这种情况:模糊地使用'下标' 有谁知道发生了什么事?
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))
答案 0 :(得分:2)
当你从plistArray
中获得plistDict
时,它不知道它是什么类型的元素,所以它认为它是AnyObject?
。因此,它不知道如何处理你提供的下标,因为它不知道如何处理AnyObject
类型的下标。如果您在将plistDict!["tip"]
分配给plistArray
时将parser.add_argument("n1", help = "first number", type=float)
parser.add_argument("n2", help = "second number", type=float)
转换为适当的类型,那么它应该能够找到它。