这个问题是针对 iOS 开发的。
想象一下,您使用UITableView
并在UITableViewCells
其中通过我们将调用的更复杂的类显示有关您的一个或多个应用程序业务对象的信息ComplexBOView
。
现在您想在用户点击包含在您的视图中的这个视图时触发一个特定的动作UITableCellView
(该事件可以通过 a 触发UITapGestureRecognizer
)
大多数时候,被认为是“最佳实践”的是使用 的tag
属性UIView
来实际返回您的模型并检索正确的业务对象。
这通常是合适的,但在某些情况下,保存指向用于构建您的ComplexBOView
.
@interface ComplexBOView : UIView
{
UILabel* lblSummary;
// ....
UITapGestureRecognizer* tapGesture;
NSObject* businessObject_;
}
@property (nonatomic, readonly) UITapGestureRecognizer* tapGesture;
@property (nonatomic, assign) NSObject* businessObject;
这背后的想法是,当用户点击视图时,实际上直接返回到 businessObject。
这里有两个问题
- 在 UIView 中有 NSObject* 信息真的很糟糕吗?
- 是否应该保留此信息,这意味着视图和模型之间的关系在这里变得更加牢固(视图对对象的所有权)?
谢谢你的建议。