我试图在.m文件中的所有方法中创建一个类的实例。而不是在每个方法中都这样做:
-(void)viewDidLoad
{
Class *c = [Class new];
}
我在.h文件中的尝试:
@interface RandomViewController : UIViewController
{
Class *c [Class new];
}
但它不起作用,我收到错误
预期';'在声明清单的末尾
我如何才能做到这一点?
由于
答案 0 :(得分:1)
创建一个实例变量,并在指定的初始值设定项中进行设置。这是一个示例@implementation
块。
@implementation RandomViewController {
// Instance variable names should start with an underscore, by convention.
Class *_c;
}
...
// Designated initializer for UIViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
_c = [[Class alloc] init];
}
return self;
}
...
- (void)someMethodThatNeedsAClassInstance
{
[_c doSomething];
}
如果您不使用ARC,则需要将[_c release]
添加到dealloc
实施中。
现在,在您班级的每个方法中,您可以参考_c
并获取您在初始化程序中创建的实例。作为旁注,这不是一个真正的“全局”实例 - 它是每个对象。您创建的每个视图控制器都有自己的_c
实例。另外,更好的方法是声明property而不是根本不用声明实例变量。
答案 1 :(得分:0)
在.h文件中:
@interface RandomViewController : UIViewController
{
Class *c;
}
在.m文件中:
-(void)viewDidLoad
{
c = [[Class alloc] init];
}
答案 2 :(得分:0)
该类方法做什么?如果返回void:
Class.h文件:
@interface Class: NSObject
{
}
- (void)new;
RandomViewController.h
@interface RandomViewController : UIViewController
{
Class *c;
}
RandomViewController.m文件
-(void)viewDidLoad
{
c = [[Class alloc] init];
//call the method
[c new];
}