として使用する場合、私はスウィフトとiOSの開発に非常に新しいですが、私はUITableView
を持っているとUITableViewCell
(それを呼び出すをサブクラス化しているので、これは、おそらく、本当に愚かなものですmyCell
)。スウィフトUITableViewCellのサブクラス、IBOutlet UILabelエラー、エラーなし通常のVAR
myCell
は、ストーリーボードでUILabel
を有し、そしてIは、コードに接続され、その横ほとんどドットが灰色であること@IBOutlet weak var myLabel: UILabel!
よう。次に初期化子、override init(style: UITableViewCellStyle, reuseIdentifier: String?)
に、私はmyLabel
にアクセスするときに、次のエラーを取得する - 私はそれをインスタンス化するか否かにかかわらず(myLabel = UILabel()
)最初のかどうか:
しかしfatal error: unexpectedly found nil while unwrapping an Optional value
、私はmyLabel
などを宣言した場合標準var
、var myLabel: UILabel!
を作成し、上記のようにイニシャライザでインスタンス化してください。
それが重要な場合、ビューコントローラはUITableViewDataSource
とUITableViewDelegate
を実装し、サブビューとしてテーブルビューを追加して、Iは、(UITableViewController
とは対照的に)UIViewController
でUITableView
を有します。
私の質問は、myLabel
がnil
になる理由は、インターフェイスビルダーを使用しているときですか?(私は接続を確認しました。接続を削除し、新しいラベルを作成しました.Ctrl +ストーリーボードUILabel
からコードにドラッグして、コード内の円からドラッグするだけで簡単に再接続できますストーリーボードUILabel
に)
EDIT
を介して、私のテーブルのセルを呼び出す:。
'unable to dequeue a cell with identifier MyTableViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
let cell = tableView.dequeueReusableCellWithIdentifier("MyTableViewCell", forIndexPath: indexPath) as! MyTableViewCell
次のエラーを与えます... "MyTableViewCell"がストーリーボードのセルプロトタイプのreuseIdentifierとして設定されているため、わかりません。
ええ、私はそれらの両方をオーバーライドしました。 – andrewm921
storyboardシーンからviewcontrollerインスタンスを作成しましたか? – Paulw11
コンセントはイニシャライザで 'nil'になります。ビューをロードしてから値を設定するまで待つ必要があります。 –