我需要在启动时在我的 AppDelegate 中初始化一个对象的对象。每当我尝试在其他地方访问 ivar 时,所有返回的都是空的。
我正在做的事情可以简化为
//AppDelegate.h:
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
NSString* someString;
}
@property (nonatomic, copy) NSString* someString;
然后在 AppDelegate.m
//AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
someString = @"Hello World!";
NSLog(@"%@",someString);
}
这就是我访问 NSString 对象时所做的
//ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"%@",delegate.someString);
}
输出文本是
- 2012-09-30 22:26:45.125 Labor3[22524:f803] 你好世界!
- 2012-09-30 22:26:45.127 Labor3[22524:f803](空)
没有任何警告或错误。
我遇到的问题有点复杂,但基本要素保持不变,我什至无法让上面的示例正常工作。任何提示表示赞赏。