我現在升級到新的Xcode 7的值,下面的代碼從未有過任何錯誤與SWIFT 1.2,但現在它告訴我說:不能下標型anyobject
不能下標值類型的任何對象
var imageArray : NSArray = []
let url = NSURL(string: (self.imageArray[indexPath.row][0] as? String)!)
我知道它的大概[0]
但我怎麼把它改寫被接受?
我現在升級到新的Xcode 7的值,下面的代碼從未有過任何錯誤與SWIFT 1.2,但現在它告訴我說:不能下標型anyobject
不能下標值類型的任何對象
var imageArray : NSArray = []
let url = NSURL(string: (self.imageArray[indexPath.row][0] as? String)!)
我知道它的大概[0]
但我怎麼把它改寫被接受?
好的,所以首先你要使用NSArray
。你可以放棄這一點,讓一切變得更容易。
在Swift中,儘可能使用強類型。不需要時避免任何和AnyObject。 (他們非常需要)。
錯誤發生是因爲您沒有告訴代碼imageArray
中的實際內容。
另外,imageArray
告訴我陣列充滿了圖像。更具描述性地爲您的變量命名。 imageUrlStringArray
或arrayOfImageUrlArrays
。反正更具描述性的東西。
聲明imageArray
像...
var imageArray = [[String]]()
這告訴編譯器imageArray
與Strings
2D陣列處於第二電平。
現在你可以創建你的網址很容易...
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
我會檢查一下:) – AaoIi
我得到以下錯誤:守衛讓...條件初始化綁定必須具有可選類型不是字符串。 – AaoIi
@AaoIi編輯。它可能需要稍微改變。我在沒有文檔的Safari上撰寫文章。您正在使用Xcode編寫訪問文檔。這應該給你一個總的想法。 – Fogmeister
什麼是內部包含'imageArray'?你可以在你創建'imageArray'的地方顯示代碼。 – Fogmeister
我已經更新了這個問題@Fogmeister – AaoIi
所以'imageArray'是一個Objective-C的'NSArray',但其實際內部呢?你把什麼放入它? – Fogmeister