是否可以从属于子类元素的子类访问超类中的属性?

时间:2013-06-19 08:18:16

标签: ios objective-c cocoa-touch

sub-classing UIScrollView element回复previous问题建议。

在我的subclass我有一些由触摸和键盘事件触发的方法。这些事件需要以各种方式与我superview中的变量进行交互。

我尝试通过_myVar.text = @"smth"访问它们但不编译。

我知道我可以使用NSNotifications来回播放,但有没有办法从我的superview / class UISCrollView访问subclass中的变量?

我已经尝试了self.myVar = @"",但它说它没有被重新编号。我正在对UIScrollView element进行子类化,但后来保留所有变量的观点是UIViewController。只是UISCroll元素被子类化

3 个答案:

答案 0 :(得分:0)

您的超类中的所有@property都可以在您的子类中访问,但不能以其他方式访问

答案 1 :(得分:0)

听起来你在这里有点困惑。你确定你在谈论超级视图吗?或者你在谈论从中派生子类的超类?如果是superview,如果你知道superview的类型,获取指向它的指针,将它转换为适当的类类型,然后调用它上面的方法或访问它的可见属性。

UIButton* superButton = (UIButton*)[self superview];
superButton.visible = NO; // Assign to superview property

如果你在谈论超类(在你的情况下是UIScrollView),那么你当然可以使用它的任何可见方法和属性。

self.bounces = YES; // Assign to superclass property

如果不清楚区别是什么,你应该更多地阅读有关Objective-C和面向对象编程的基础知识。

  • Superview:此视图的相对视图。此视图是超级视图的subviewUIView和所有派生类都具有这种层次关系。
  • 超类:您正在扩展其功能以定义子类的类。您的子类继承了所有可见的属性和方法。

答案 2 :(得分:0)

这么多的困惑,从哪里开始?我真的不知道。为了它的价值,

_myVar.text = "@"smth"

显然不会编译,请注意流浪“。

_myVar.text = "@smth"

有更好的编译机会。