我知道我们可以通过这个
轻松地使用appDelegate类中声明的对象myAppDelegate *alpha= (myAppDelegate *)[[UIApplication sharedApplication]delegate];
因此从上面我们可以使用alpha对象来获取myAppDelegate类中其他对象的值。
但假设我有一个A类并且我已经在其.h中声明了一个NSString * hello并在.m文件中合成它。
现在在B组中我创建了一个A类对象,即
A *classA = [[A alloc]init];
A.hello = [NSString stringWithFormat:@"Kawa banga"];
[classA release];
现在在C类中,我再次创建一个A类对象
A *classA = [[A alloc] init];
NSLog(@"%@",classA.hello);
它给了我null。
如何在不同的类中获取hello对象的值。
答案 0 :(得分:1)
您必须使用Singleton模式或将对象传递给所需的类。
我认为您需要查看Singleton Pattern
答案 1 :(得分:1)
当您将hello
声明为类A
的属性时,它是一个实例变量。这意味着它与您创建的A
的每个实例(使用alloc
& init
)分开。
看起来您可能只想分享A
的一个实例。一种简单的方法是将其添加为myAppDelegate
类的属性。 (顺便说一句,Cocoa中的类名通常以大写字母开头,以区分变量名称)
完成后,您将能够通过以下方式访问它:
myAppDelegate *alpha = (myAppDelegate *)[[UIApplication sharedApplication]delegate];
myAppDelegate.classA.hello = @"hello, world";