2017年6月21日水曜日

Swift エラーメッセージ - 型変換(Type Casting)

Cannot downcast from 'UIView' to a more optional type 'UITableViewHeaderFooterView?'
  • エラーが発生するコード
     if let headerView = view as! UITableViewHeaderFooterView {
       ...
     }
  • 原因:viewがOptionalでないため、UITableViewHeaderFooterViewとして扱えない。
  • 修正
    let headerView = view as! UITableViewHeaderFooterView
    ...

Initializer for conditional binding must have Optional type, not 'UITableViewCell'
  • エラーが発生するコード
    if let cell = sender as! UITableViewCell {
       ....
    }
  • 原因:senderがOptionalなのでUITableViewCellとして扱えない。
  • 修正
    if let cell = sender as! UITableViewCell? {
        ....
    }
Cannot convert value of type 'Any?' to expected argument type 'UITableViewCell'
  • エラーが発生するコード
    if let indexPath = self.tableView.indexPath(for: sender) {
        ...
    }
  • 原因:senderの型がAny?なのでキャストが必要。
  • 修正
    if let indexPath = self.tableView.indexPath(for: sender as! UITableViewCell) {
        ...
    }



0 件のコメント: