下划线swift 2的模糊使用

时间:2016-02-15 21:20:50

标签: ios xcode swift2

在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))

1 个答案:

答案 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) 转换为适当的类型,那么它应该能够找到它。