我想用我的AppDelegate来存储任何其他类都可以访问的对象。我宣布这个AppDelegate中是这样的:用作全局变量的AppDelegate变量不起作用
@interface MyAppDelegate : UIResponder <UIApplicationDelegate>
{
MyClass *tracker;
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ICViewController *viewController;
@property (retain, nonatomic) MyClass *tracker;
@end
我合成跟踪和应用中:didFinishLaunchingWithOptions:我在像这样的对象设置一个NSString的:
self.tracker = [[MyClass alloc] init];
self.tracker.testGlobal = @"global funguje";
当我需要到别的地方访问跟踪器在其他一些类中,我使用此代码:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
MyClass *trackerTEST = appDelegate.tracker;
NSLog(@"TEST : %@",trackerTEST.testGlobal);
问题是testGlobal为NULL。我究竟做错了什么?此处还有MyClass的课程文件:
@interface MyClass : NSObject
{
NSString *testGlobal;
}
@property (retain, nonatomic) NSString *testGlobal;
@end
@implementation MyClass
@synthesize testGlobal = _testGlobal;
@end
感谢您的任何帮助!
你说'testGlobal'是零,但你肯定'trackerTEST'和'appDelegate'是不是也为零? – jtbandes 2012-04-20 09:39:08
刚刚发现appDelegate很好,但trackerTEST是零...嗯...我在这里做错了什么? :) – 2012-04-20 09:45:53