这里有一个更简单的方法。
只需使用一个全局变量。声明需要传递给下一个类的对象或变量。
例如,我们有两个类 - 分别是 classA 和 classB。
在classA中,通常包含:
#import "classA.h"
@interface classA()
@end
@implementation classA
-(void)viewDidLoad
{
...
}
-(void)didReceiveMemoryWarning
{
...
}
而classB 包含:
#import "classB.h"
@interface classB()
@end
@implementation classB
-(void)viewWillLoad
{
...
}
-(void)didReceiveMemoryWarning
{
...
}
现在,将第二个类classB 导入到classA:
#import "classA.h"
#import "classB.h" // --- Import classB to classA.
@interface classA()
@end
@implementation classA
-(void)viewDidLoad
{
...
}
-(void)didReceiveMemoryWarning
{
...
}
现在我们有一座桥可以去二等舱classB。
现在,要将变量或对象声明为全局,请在第一个类的 .m 文件中声明如下:
在classA.h
#import "classA.h"
#import "classB.h"
@interface classA()
@end
NSString *temp; // ---- Declare any object/variable as global.
@implementation classA
-(void)viewDidLoad
{
...
temp=@"Hello";
...
}
-(void)didReceiveMemoryWarning
{
...
}
这里的对象temp 是类NSString 的全局对象。要访问任何类中的全局对象或变量,只需在第二个类中重新声明对象或变量即可。例如,如下所示:
在classB.m
#import "classB.h"
@interface classB()
@end
extern NSString *temp; //----use `extern` keyword for using the global object/variable in classB that was declared in classA.
@implementation classB
-(void)viewDidLoad
{
...
LabeL.text=temp;
...
}
-(void)didReceiveMemoryWarning
{
...
}
现在第二个类可以访问该值。很简单!...这个方法可以用于任意数量的类。
注意:
你应该将第二类的.h文件导入第一类。但是不需要导入
第一类到第二类的.h文件。
记住这座桥。如果有桥,两边应该都能走。