2015-09-23 48 views
0

我現在升級到新的Xcode 7的值,下面的代碼從未有過任何錯誤與SWIFT 1.2,但現在它告訴我說:不能下標型anyobject

不能下標值類型的任何對象

var imageArray : NSArray = [] 
let url = NSURL(string: (self.imageArray[indexPath.row][0] as? String)!) 

我知道它的大概[0]但我怎麼把它改寫被接受?

+0

什麼是內部包含'imageArray'?你可以在你創建'imageArray'的地方顯示代碼。 – Fogmeister

+0

我已經更新了這個問題@Fogmeister – AaoIi

+0

所以'imageArray'是一個Objective-C的'NSArray',但其實際內部呢?你把什麼放入它? – Fogmeister

回答

3

好的,所以首先你要使用NSArray。你可以放棄這一點,讓一切變得更容易。

在Swift中,儘可能使用強類型。不需要時避免任何和AnyObject。 (他們非常需要)。

錯誤發生是因爲您沒有告訴代碼imageArray中的實際內容。

另外,imageArray告訴我陣列充滿了圖像。更具描述性地爲您的變量命名。 imageUrlStringArrayarrayOfImageUrlArrays。反正更具描述性的東西。

聲明imageArray像...

var imageArray = [[String]]() 

這告訴編譯器imageArrayStrings 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 
+0

我會檢查一下:) – AaoIi

+0

我得到以下錯誤:守衛讓...條件初始化綁定必須具有可選類型不是字符串。 – AaoIi

+1

@AaoIi編輯。它可能需要稍微改變。我在沒有文檔的Safari上撰寫文章。您正在使用Xcode編寫訪問文檔。這應該給你一個總的想法。 – Fogmeister

相關問題