この質問は、iOS 開発に固有のものです。
を使用UITableView
し、内部でUITableViewCells
と呼ぶもう少し複雑なクラスを介して、1 つ以上のアプリケーション ビジネス オブジェクトに関する情報を表示するとしますComplexBOView
。
ここで、ユーザーがに含まれるこのビューをタップしたときに特定のアクションをトリガーする必要がありますUITableCellView
(イベントは を介してトリガーできますUITapGestureRecognizer
) 。
ほとんどの場合、「ベスト プラクティス」と見なされるのは、 のtag
プロパティを使用しUIView
て実際にモデルに戻り、正しいビジネス オブジェクトを取得することです。
多くの場合、これは適していますが、ComplexBOView
.
@interface ComplexBOView : UIView
{
UILabel* lblSummary;
// ....
UITapGestureRecognizer* tapGesture;
NSObject* businessObject_;
}
@property (nonatomic, readonly) UITapGestureRecognizer* tapGesture;
@property (nonatomic, assign) NSObject* businessObject;
この背後にある考え方は、ユーザーがビューをタップしたときに実際に businessObject に直接戻ることです。
ここで2つの質問
- UIView 内に NSObject* 情報を持つのは本当に悪いことですか?
- ビューとモデルの間の関係がここでより強くなるという意味で、この情報を保持する必要がありますか (オブジェクトに対するビューの所有権) ?
アドバイスありがとうございます。