[英]Swift Use of Unresolved Identifier 'IndexPath' TableView Cell Button
[英]“Use of unresolved identifier” with Swift
我正在重寫我在Swift中的一個應用程序,它顯示South Kohala的實時天氣數據。 愛斯威夫特到目前為止!
我有一個小問題就是把事情搞砸了。 我有一個基於標簽欄的應用程序,僅限iPad。
我的一個標簽是一個UIViewController
,在故事板中添加了一個TableView
來顯示NOAA預測。 我有一個數據類Data
,它從我們的服務器檢索列表,並在viewDidLoad
創建一個常量List
。 它是一個數組數組,每個子數組中有四個字符串。
我已經驗證它存在,因為我可以創建一個常量: List[0]
並println
所有字符串。
但是,當我使用它來填充表視圖時,我得到一個“使用未解析的標識符”錯誤。 如果相反,我嘗試將單元格標題設置為“測試”,其工作正常。
這似乎是一個范圍問題,但是當在類中創建常量時,我只是不明白為什么它在tableView
函數中不可見。 我已經看了幾十篇關於此的帖子,但我找到的任何內容似乎都沒有幫助。 這是代碼:
import UIKit
class ForecastsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var forecastsTable: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
let instanceofData: Data = Data()
let list = instanceofData.forecastsList() as NSArray
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
var forecastList:NSArray = list[indexPath.row] //selects one of the arrays from List
cell.textLabel?.text = forecastList[0] as string
return cell
}
這是因為List
是viewDidLoad
里面的純粹本地的; 在你聲明它的地方,其他方法看不到它。
比較,例如, forecastsTable
,它在任何方法之外聲明,這意味着任何方法都可以看到它。
此行為稱為“范圍”,對任何編程語言都至關重要。 在方法內部聲明的變量在其外部既不可見,也不會在該方法運行完畢后持久存在。 因此,在你的榜樣,不僅是List
不可見時cellForRowAtIndex
運行,它甚至不存在時cellForRowAtIndex
運行-它已經很久之前銷毀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.