问候我需要初始化一个类的实例,并且可以通过任何方法访问它
使用" Whatever = boom = [Wathever alloc] init]的示例;"
@interface something : NSObject;
@implementation
-(void) method1{
boom.size = 10;
}
-(void) method2{
boom.color = blue;
}
我将在哪里分配和初始化繁荣,以便我可以在每种方法中操纵它?
答案 0 :(得分:1)
例如在whatever.h和whatever.m中调用类的方法必须在whatever.h中声明。
-(void) method1;
-(void) method2;
并使用
Whatever *boom = [Wathever alloc]init];
[boom method1];
[boom method2];
答案 1 :(得分:1)
单班?使它成为该类的属性。
//.h
@property Whatever *boom;
//.m
- (id)init {
self = [super init];
if (self) {
_boom = [[Whatever alloc] init];
}
return self;
}
整个应用程序?在某处创建一个实例,就像你的app delegate一样,然后将它传递给Root View Controller,后者又将它传递给每个View Controller。
// AppDelegate .m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// app setup code
Whatever *boom = [[Whatever alloc] init];
FirstViewController vc = self.window.rootViewController;
vc.boom = boom;
}
// FirstViewController.h, NextViewController.h, etc.
@property Whatever *boom;
// FirstViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NextViewController *nextVC = sender.destinationViewController;
nextVC.boom = self.boom;
}
您也可以使用Singleton路线,但之后您将紧密耦合到应用程序范围内的单个实例。
答案 2 :(得分:0)
看看你在什么时候创建一个类来初始化那个类,一个常用的方法总是在那里调用它自己的类:
这样的事情:
-(id)init
{
self = [super init];
if (self)
{
}
return self;
}
您可以在.h文件中声明实例,如下所示:
Whatever *boom;
您可以在上面的方法中初始化该实例,如下所示:
-(id)init
{
self = [super init];
if (self)
{
boom = [Wathever alloc]init];
}
return self;
}
希望这会对你有所帮助。