gpt4 book ai didi

iphone - 类的全局实例

转载 作者:行者123 更新时间:2023-12-03 21:15:37 24 4
gpt4 key购买 nike

我正在尝试使类的实例在 .m 文件中的所有方法中可用。而不是在每个方法中执行此操作:

-(void)viewDidLoad
{
Class *c = [Class new];
}

我在 .h 文件中的尝试:

@interface RandomViewController : UIViewController
{
Class *c [Class new];
}

但是它不起作用,我收到错误

Expected ';' at end of declaration list

我怎样才能做到这一点?

谢谢

最佳答案

创建一个实例变量,并将其设置在您指定的初始值设定项中。这是一个示例 @implementation block 。

@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 并获取您在初始化程序中创建的实例。附带说明一下,这并不是真正的“全局”实例 - 它是每个对象的实例。您创建的每个单独的 View Controller 都将拥有自己的 _c 实例。另外,更好的方法是声明 property根本不用声明实例变量。

关于iphone - 类的全局实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15617569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com