iOS開発に関してロープを習得するために、私はさまざまなFacebookのような "投稿"とテーブルビューを作成しようとしています。この質問のために私はXIBだ "フォトポスト" を参照する以下見ることができます:iOS Swift:TableViewCellを適切に初期化する
PhotoPostTableViewCell.xib:
class PhotoPostTableViewCell: UITableViewCell {
@IBOutlet weak var postingUserImageButton: UIButton!
@IBOutlet weak var postingUserNameButton: UIButton!
@IBOutlet weak var timeStampLabel: UILabel!
@IBOutlet weak var primaryImageView: UIImageView!
@IBOutlet weak var postContentsLabel: UILabel!
@IBOutlet weak var rippleLikesLabel: UILabel!
@IBOutlet weak var rippleButton: UIButton!
@IBOutlet weak var imageViewHeightConstraint: NSLayoutConstraint!
...
}
このポストは持つことを必要とします以下:
postingUserID
Int
カスタムユーザークラスを参照すると、ユーザーのイメージとユーザー名(左上隅)ポストのプライマリイメージを保持するタイプUIImage
の
photo
String
の
postTimeStamp
ポストをタイプInt
の
rippleLikes
投稿された時間をキャプチャします投稿が持つ「好き」の数を保持する。このポストは、このポストはまたpostContentLabel
という名前オプションString
を持っている私は、様々な異なるアプローチを試してみましたが、思えてきた他の場所
参照することができるように、このタイプInt
の0
postID
に初期化されます常にエラーに終わるので、私はいくつかのアドバイスを求めると思った。次のように
私の質問は:このクラスを定義し、作成するための最も専門的/効率的な方法は何ですか
/それぞれのテーブルビューのデリゲートメソッド内からこのテーブルビューセルクラスを初期化する
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { ... }
あなたはXIBとの関連を持っていない必要な変数を定義する最善の方法について、より詳細には触れてもらえますか?つまり、PostID –
私は上で説明したように、メンテナンス性と再利用性のためにコードを広める良い方法として、あなたの投稿を表すクラスを作成することをお勧めします。必要な変数とオプションの変数をここで定義することができます。 – Callam
私は 'PhotoPost'のようなものの例を加えて答えを更新しました。オプションのStringを使用してオプションの投稿コンテンツを定義することができます。つまり、 'post.contents'はゼロにすることができます。技術的には、他のすべてのプロパティも可能ですが、アンラップされているので、ifステートメントを使用してそれらがゼロかどうかを確認する必要があります。 – Callam