访问上海华性质

我搜索了这个问题的答案,而且我发现答案不工作。访问上海华性质

我有一种观点认为,是的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

回到顶部