当我继承自定义的UIViewController时,为什么我不能访问变量?

时间:2011-12-11 10:39:20

标签: objective-c ios properties uitableview subclassing

我是iOS开发人员的新手,如果答案很明显就道歉......但这不是我的意思。 我的APP有一个导航控制器。 我有很多非常相似的应用程序区域要创建。 这些都是UItableviewcontroller,它已经完成了相当多的自定义,允许在tableview旁边的按钮和其他控件,它们的大小已经减小,允许在它旁边和下面进行控制。 按钮,文本,背景等以及加载的数据必须都是APP的特定个体。 我通过简单地在Xcode中添加一个新的文件子类来创建一个UItableviewcontroller子类。 我在xib中创建了我的界面...创建了所有方法来驱动我需要的东西。 看起来很棒...一切都很好。如果我单独使用它......效果很好。

问题:我无法弄清楚如何子类化我的自定义子类UITVController! 它的所有属性都不能从新的子类中获得。 我显然不明白这里的工作方式。

我尝试过添加新文件> UIViewcontroller子类并将超类更改为我的自定义超类......无济于事。没有可访问的属性。

我挖了挖,变得比其他任何事情更困惑。 是否有人能够帮助我做到正确。挫败感正在形成。 谢谢 Keispe

编辑: 哇发现了这个问题。我打开了几个项目,开了很多天Xcode。 它完全被吓到了! 事实上,jrturton和eugene ......我确实知道自己在做什么(我以为自己疯了......之前在我的应用程序中做过这件事,突然没有工作)Xcode完全失去了它的大脑!

有人看过Xcode之前做过吗???使用4.1

血淋淋的地狱浪费了一大堆宝贵的时间,包括你的。 谢谢费拉斯

1 个答案:

答案 0 :(得分:1)

当您对任何内容进行子类化时,您可以通过通过点语法

寻址来访问父类的属性
@interface BaseClass : NSObject {
 @public
  NSString *baseclassString;
}

@property (nonatomic, copy) NSString *name;

@end

·H

@interface HigherClass : BaseClass

@end

的.m

@implementation HigherClass

- (id)init {
  self = [super init];
  self.name = @"Hola";
  self->baseclassString = @"Hola";
  return self;
}

- (void)viewDidLoad {
  NSLog(@"name: %@", self.name);
}
@end

这一切都不是100%的内存清理,但你必须了解这里发生的事情,并根据你的应用进行适当的调整。