2016-04-27 8 views
0
//This is in the UITableViewCell class method 
    class func videoCellWithTableView(tableview:UITableView) -> OLVideoCell{ 

    var cell = tableview .dequeueReusableCellWithIdentifier("OLVideoCell") as! OLVideoCell 

    // “!cell” Why you will be prompted “ Unary operator '!' cannot be applied to an operand of type 'OLVideoCell'” 

    if !cell { 

     cell = OLVideoCell(style: .Default, reuseIdentifier: "OLVideoCell") 

     cell.selectionStyle = .None 

    } 
    return cell 
} 
+0

。次のように条件を記述します: 'cell == nil'。 – werediver

+0

ありがとうございます。「タイプの値 'OLVideoCellの値はゼロにはできません。比較は許可されません」というメッセージが表示されます。 –

+0

強制的にセルを非オプションの型にキャストします。そこに 'nil'があると思うなら、オプションの型を使います。 – werediver

答えて

1

if cell == nil if ifステートメント内の任意の条件の値は、BooleanTypeプロトコルに準拠した型でなければなりません。条件はオプションのバインディング宣言でもあります。

1
ので、同じようにコードを書き換え

:これはスウィフトあると `cell`は` Bool`ないので

import UIKit 

class OLVideoCell: UITableViewCell { 

    class func videoCellWithTableView(tableview: UITableView) -> OLVideoCell { 
     // Use `as?` to allow `nil` as a result. 
     var cell = tableview.dequeueReusableCellWithIdentifier("OLVideoCell") as? OLVideoCell 
     // The condition has to be of boolean type. 
     if cell == nil { 
      cell = OLVideoCell(style: .Default, reuseIdentifier: "OLVideoCell") 
      cell!.selectionStyle = .None 
     } 
     return cell! // And the result has to be non-optional. 
    } 

} 
関連する問題