AppDelegate を使用して、他のクラスからアクセスできるオブジェクトを保存したいと思います。この AppDelegate を次のように宣言しました。
@interface MyAppDelegate : UIResponder <UIApplicationDelegate>
{
MyClass *tracker;
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ICViewController *viewController;
@property (retain, nonatomic) MyClass *tracker;
@end
トラッカーを合成し、application:didFinishLaunchingWithOptions: で、次のようにそのオブジェクトに NSString を 1 つ設定します。
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
助けてくれてありがとう!