访问上海华性质
我搜索了这个问题的答案,而且我发现答案不工作。访问上海华性质
我有一种观点认为,是的UIView的一个子类,而我已经添加了一个属性。我想从此视图创建的子视图访问此属性。那可能吗?
我试过指self.superview.propertyname,但我得到的属性名未在类型的UIView对象发现错误。好吧,对。我意识到,由于它是UIView的子类,它是一个UIView,但我怎么才能知道它添加的额外属性?
回答:
你有多种选择,其中两个是:
1铸造:
@implementation SubviewView - (void)blah
{
((CustomView *)self.superview).property = ...`
}
@end
2.代表:
@protocol SubviewViewDelegate - (void)customView:(SubView *)sv modified:(...)value;
@end
@class SubView
@property (nonatomic, weak) id <CustomViewDelegate> delegate;
@end
@implementation SubviewView
- (void)blah
{
[self.delegate subView modified:...];
}
@end
@implementation CustomView
- (void)subView:(SubView *)sv modified:(...)value
{
self.property = value;
}
@end
虽然第二个选项是更多的代码,我认为它往往更适合。使用代表可减少耦合,并与Law of Demeter很好地配合使用。欲了解更多信息,请参阅此documentation。
以上是 访问上海华性质 的全部内容, 来源链接: utcz.com/qa/264013.html