3 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
if let
/ if var
optional綁定僅在表達(dá)式右側(cè)的結(jié)果是可選的時(shí)才有效。如果右側(cè)的結(jié)果不是可選的,則無(wú)法使用此可選綁定。這個(gè)可選綁定的要點(diǎn)是檢查nil
并僅使用變量(如果它是非變量)nil
。
在您的情況下,該tableView
參數(shù)被聲明為非可選類(lèi)型UITableView
。它保證永遠(yuǎn)不會(huì)nil
。所以這里的可選綁定是不必要的
func tableView(tableView: UITableView, commitEditingStyle editingStyle:UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == .Delete { // Delete the row from the data source myData.removeAtIndex(indexPath.row) tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
我們所要做的就是擺脫if let
和改變?nèi)魏纬霈F(xiàn)tv
在它剛tableView
。

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于我的具體問(wèn)題,我不得不更換
if let count = 1 { // do something ... }
同
let count = 1if(count > 0) { // do something ... }

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
在您使用自定義單元格類(lèi)型的情況下,例如ArticleCell,您可能會(huì)收到錯(cuò)誤消息:
Initializer for conditional binding must have Optional type, not 'ArticleCell'
如果您的代碼行看起來(lái)像這樣,您將收到此錯(cuò)誤:
if let cell = tableView.dequeReusableCell(withIdentifier: "ArticleCell",for indexPath: indexPath) as! ArticleCell
您可以通過(guò)執(zhí)行以下操作來(lái)修復(fù)此錯(cuò)誤:
if let cell = tableView.dequeReusableCell(withIdentifier: "ArticleCell",for indexPath: indexPath) as ArticleCell?
如果你檢查上面的內(nèi)容,你會(huì)發(fā)現(xiàn)后者正在為ArticleCell類(lèi)型的單元格使用可選的強(qiáng)制轉(zhuǎn)換。
- 3 回答
- 0 關(guān)注
- 637 瀏覽
添加回答
舉報(bào)