2015-08-14 31 views
-2

我正在用2 TableView開發一個UIViewController,遵循Swift規範我創建了一個用於管理TableViews的UITableViewDelegate和UITableViewDataSource接口的類。Swift - iOS:意外地發現零,同時展開一個可選值

class CurrencyController: UIViewController, UITableViewDelegate, UITableViewDataSource { 
var valute = [NSManagedObject]() 
var categoria = [NSManagedObject]() 


    //.... 
} 

我寫的FUNC鍵,支持重排的TableView:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    if tableView == self.tabCurrency{ 
     // 
     let cell = tableView.dequeueReusableCellWithIdentifier("currencyRow", forIndexPath: indexPath) as! CurrencyCell 

     let thisElem = valute[indexPath.row] 

     cell.curName.text = thisElem.valueForKey("valuta") as! String? //This code generates the exception 
     let elem = thisElem.valueForKey("cambio") as! Double? //This code generates the exception 

     cell.rateCur.text = "\(elem!)" 
     return cell 
    }else{ 
     // 
     let cell = tableView.dequeueReusableCellWithIdentifier("categoryRow", forIndexPath: indexPath) as! CategoryCell 

     let thisElem = categoria[indexPath.row] 

     cell.catName.text = thisElem.valueForKey("cat_name") as! String? //This code generates the exception 
     return cell 
    } 

} 

此代碼生成unexepctedly發現而展開的可選值但使用PO命令零隻見該變量不包含零值...

任何想法?謝謝

UPDATE: 我寫了「valute」和「categoria」對象的聲明。

+1

'thisElem'是什麼類型? – vadian

+0

對不起,我沒有寫這個埃爾姆的類型。 thisElem類型是NSManagedObject – N3tMaster

+0

編譯器不會抱怨as!字符串?'。它或者是as!字符串'強制鑄造或'作爲?字符串可選綁定,但沒有尾隨問號。 – vadian

回答

0

好吧,我看到我做錯了什麼:我沒聯繫我的CategoryCell和CurrencyCell類與Storyboard中的Prototype Cell一起使用。

CategoryCell和CurrencyCell是我的擴展UITableViewCell的類,用於管理TableView的所有單元。

現在我將這些類與storyboard正確鏈接,現在它工作正常!

0

看來:

this.valueForKey("cambio") 

應該是:

thisElem.valueForKey("cambio"). 

this - >thisElem

+0

沒有thisElem是正確的,thisElem代表從鏈接到TableView的NSManagedObject數組中選擇的元素 – N3tMaster

+0

哦,我很抱歉,我沒有看到我的錯誤: - D ...我很慚愧..我要更新我的代碼。無論如何,我解決我的問題,謝謝你的提示 – N3tMaster

相關問題