我目前已升级到新的Xcode 7,以下代码从未在swift 1.2中出现任何错误,但现在它告诉我:
无法下标任何对象类型的值
var imageArray : NSArray = []
let url = NSURL(string: (self.imageArray[indexPath.row][0] as? String)!)
我知道它关于[0]
但是我如何重写它以被接受?
答案 0 :(得分:3)
好的,首先你使用的是NSArray
。你可以放弃它,让一切变得更容易。
在Swift中,尽可能使用强类型。在不需要时避免使用Any和AnyObject。 (他们非常需要)。
错误正在发生,因为您没有告诉代码imageArray
中的实际内容。
此外,imageArray
告诉我阵列中充满了图像。更具描述性地命名变量。 imageUrlStringArray
或arrayOfImageUrlArrays
。无论如何,还是更具描述性的东西。
声明imageArray
赞......
var imageArray = [[String]]()
这告诉编译器imageArray
是第二级Strings
的二维数组。
现在您可以轻松创建您的网址了......
guard
let urlString = imageArray[indexPath.row].first,
let url = NSURL(string: urlString)
else { // Handle the inability to create a URL }
// Do something with the url