Iphone 会出现奇怪的行为

Iphone 会出现奇怪的行为,iphone,objective-c,global-variables,viewwillappear,Iphone,Objective C,Global Variables,Viewwillappear,我有一个选项卡栏控制器,其中包含一些选项卡栏项 用户第一次点击选项卡栏项目时,我希望打开alertview,以便用户可以阅读一些小的说明提示 我有一个全局变量(比如CONFIG),它包含一些布尔值(CONFIG.tip1AlreadySeen、CONFIG.tip1AllreadySeen等)。所有这些布尔值都被初始化为NO 当用户点击选项卡栏项时,将执行其viewcontroller中的ViewWillExample方法。在这个方法中,我使用了如下代码: -(void) viewVillApp

我有一个选项卡栏控制器,其中包含一些选项卡栏项

用户第一次点击选项卡栏项目时,我希望打开alertview,以便用户可以阅读一些小的说明提示

我有一个全局变量(比如CONFIG),它包含一些布尔值(CONFIG.tip1AlreadySeen、CONFIG.tip1AllreadySeen等)。所有这些布尔值都被初始化为NO

当用户点击选项卡栏项时,将执行其viewcontroller中的ViewWillExample方法。在这个方法中,我使用了如下代码:

-(void) viewVillAppear: (BOOL) animated {
    extern CONFIG; // <- it's not the actual code but it indicates that a global variable must be used

    [super viewWillAppear: animated];

    if(CONFIG.tip1AlreadySeen == NO) {
        CONFIG.tip1AlreadySeen = YES;

        // code for showing the alertview
    }    
}
-(void)viewVillAppear:(BOOL)动画{

extern CONFIG;//为什么它必须是全局的而不包含在视图控制器本身中?只需在视图控制器上切换一个简单的
BOOL
@属性。为了在应用程序的多次运行中保持这种持久性,请将结果保存到NSUserDefaults,然后在每次初始化视图控制器时检查该属性oller.

在这种情况下,您是对的:我不需要全局变量。但是为了在我的应用程序的多次运行中保持持久性,我创建了一个全局对象配置,当用户退出应用程序时,它会写入磁盘(使用NSKeyedArchiver)。我还没有尝试使用NSUserDefault,我会看一看。但我的问题仍然存在:为什么在一个viewcontroller中分配CONFIG.tip1AlreadySeen=是,而在其他一些VIE控制器中不是?
-(void) viewVillAppear: (BOOL) animated {
    extern CONFIG; // <- it's not the actual code but it indicates that a global variable must be used

    [super viewWillAppear: animated];

    if(CONFIG.tip1AlreadySeen == NO) {
        // code for showing the alertview
    }    
}

-(void) viewDidAppear: (BOOL) animated {
    extern CONFIG;
    CONFIG.tip1AlreadySeen = YES;
}