2016-04-25 3 views
0

として使用する場合、私はスウィフトと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などを宣言した場合標準varvar myLabel: UILabel!を作成し、上記のようにイニシャライザでインスタンス化してください。

それが重要な場合、ビューコントローラはUITableViewDataSourceUITableViewDelegateを実装し、サブビューとしてテーブルビューを追加して、Iは、(UITableViewControllerとは対照的に)UIViewControllerUITableViewを有します。

私の質問は、myLabelnilになる理由は、インターフェイスビルダーを使用しているときですか?(私は接続を確認しました。接続を削除し、新しいラベルを作成しました.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'

012: let cell = tableView.dequeueReusableCellWithIdentifier("MyTableViewCell", forIndexPath: indexPath) as! MyTableViewCell次のエラーを与えます

... "MyTableViewCell"がストーリーボードのセルプロトタイプのreuseIdentifierとして設定されているため、わかりません。

+0

ええ、私はそれらの両方をオーバーライドしました。 – andrewm921

+0

storyboardシーンからviewcontrollerインスタンスを作成しましたか? – Paulw11

+1

コンセントはイニシャライザで 'nil'になります。ビューをロードしてから値を設定するまで待つ必要があります。 –

答えて

0

は、私は2つの問題があった、それを考え出しましたViewControllerのdidLoadにUITableViewオブジェクトを作成し、dataSourceを設定してselfにデリゲートした後は、をサブビューとしてをViewControllerのビューに追加しました。

誰がこれをしたい場合は、私は、このリンクが役に立ったと評価してい:ヘルプ、rMickeyDため https://medium.com/@ronm333/a-simple-table-view-example-in-swift-cbf9a405f975#.yymib1tm5

感謝を。

1

ストーリーボードのUILabelは、特定のreuseIdentifierを持つ特定のセルに接続されています。ラベルのあるセルのラベルにアクセスしようとしていますか?これはあなたが持っているエラーを引き起こす可能性があります。

1)私は

2のViewControllerサブクラスのテーブルビューへの出口(@IBOutlet)を持って、そしてませんでした)私はletを使用していた。

+0

ええ、それはストーリーボードのプロトタイプセルにあるUILabelです。適切なreuseIdentifierが(おそらく)渡されています - 実際はそうではありません - 上の編集を参照してください。 – andrewm921

+0

cellForRowAtIndexPathメソッドを投稿できますか? – rMickeyD

+0

プロトタイプのセルがUITableViewCellまたはMyTableViewCellとして登録されていますか?後者でなければなりません。これが完了したら、MyTableViewCellの新しいファイルを作成する必要があります。これがあなたの店を接続する場所です。 – rMickeyD

関連する問題