我有一个自定义的UIVIewController,它是其他控制器的基类,并且有一个自定义UIView变量的实例,可以通过继承这些类来访问它.
BaseViewController.h
@interface BaseViewController : UIViewController {
UIView *_vwHeader;
}
@end
Run Code Online (Sandbox Code Playgroud)
BaseViewController.m
#import "BaseViewController.h"
@implementation BaseViewController
-(void)loadView {
[super loadView];
_vwHeader = [[UIView alloc] init];
}
@end
Run Code Online (Sandbox Code Playgroud)
CustomViewController.h
#import "BaseViewController.h"
@interface CustomViewController : BaseViewController
@end
Run Code Online (Sandbox Code Playgroud)
CustomViewController.m
#import "CustomViewController.h"
@implementation CustomViewController
- (void)loadView
{
[super loadView];
[_vwHeader setHidden:NO];
}
@end
Run Code Online (Sandbox Code Playgroud)
问题是,当我在模拟器上运行时,一切都运行得很好,但是当我换到设备时,我[_vwHeader setHidden:NO];在行上有一个错误,上面写着:'_vwHeader' undeclared (first use in this function)
我已经尝试过:
UIView和NSObject类型什么似乎解决了这个问题,但并不完全
_vwHeader通过self._vwHeader或super._vwHeader似乎工作创建属性并访问它,但是必须创建一个属性才能访问变量并不能让我感到舒适,特别是因为我必须为我项目中相同情况下的所有变量执行此操作.Apple LLVM Compiler 2.1会使编译错误消失,但是在项目中使用的其他库会产生一些其他问题.因此,它不是一个明确的解决方案,但可能是问题所在的线索. …