objective-c - 为什么在我对自定义的 UIViewController 进行子类化时无法访问变量?

标签 objective-c ios properties uitableview subclassing

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

问题:我不知道如何继承我的自定义子类 UITVController! 它的所有属性都不能从新的子类中获得。 我显然不明白这里是如何运作的。

我已经尝试添加一个新文件 > UIViewcontroller 子类并将父类(super class)更改为我的自定义父类(super class)...无济于事。没有可访问的属性。

我挖啊挖,变得比什么都更糊涂。 有没有好心人帮我把它弄好。挫败感正在增加。 谢谢 凯斯佩

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

有人见过 Xcode 这样做过吗???使用 4.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% 的内存清理,但您必须掌握这里发生的事情并根据您的应用程序适本地调整它。

关于objective-c - 为什么在我对自定义的 UIViewController 进行子类化时无法访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463345/

相关文章:

iphone - 用数据填充实体后创建核心数据关系

java - 如何跳转到 Java 属性文件中的某个部分?

ios - initWithCoder 在 ios 中显示错误的帧

用于字体图标的 ios 动态 unicode NSString

ios - 在 iOS 上将 Web 服务与离线存储同步的最佳实践

python - 在 __init__ 中应用属性 setter 逻辑

azure - 如何在 xlsx 文件中添加关系属性列

objective-c - 显示用户位置的问题

iphone - 音频压缩不适用于 iTunes 歌曲

ios - Apple Mach-O 链接器错误 _OBJC_CLASS_$_FIRInstanceID