如何在viewDidLoad中为视图控制器属性分配应用程序委托引用?

时间:2012-04-19 05:17:01

标签: ios xcode

在MyViewController.h中声明:

AppDelegate *appDelegate;
@property (nonatomic, strong) AppDelegate *appDelegate;

在MyViewController.m的viewDidLoad中:

self.appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
localAppDelegate= (AppDelegate *)[[UIApplication sharedApplication] delegate];

由于某种原因,appDelegate保持为null,但正确分配了localAppDelegate。

为什么self.appDelegate没有正确分配?

1 个答案:

答案 0 :(得分:2)

根据您的评论,Erik基本上应该始终可以访问localAppDelegate,但请务必将AppDelegate标头导入到您要在其中使用appDelegate的类..如果您需要存储变量,如用户设置,常见变量..etc 。我更喜欢使用NSUserDefaults它的简单和建议在这种情况下使用..这是一个保存并从NSUserDefaults获取字符串的简单示例

  1. 设置:

    NSString *str = @"Malek";
    [[NSUserDefaults standardUserDefaults] setValue:str forKey:@"myName"]; [[NSUserDefaults standardUserDefaults] synchronize];

  2. 2.得到:

    NSString *myName = [[NSUserDefaults standardUserDefaults] valueForKey:@"myName"];