iOS TabBar应用程序中的全局变量

时间:2012-02-01 13:39:47

标签: objective-c ios xcode global-variables

我在xcode 4.2中创建ios应用程序。 我有外部文件与数据库。我不想在每个视图中下载数据。我应该如何为tabbar应用程序创建一个全局变量?什么时候我应该在关闭应用程序之前上传这个数据库?

3 个答案:

答案 0 :(得分:5)

在iOS应用程序中,模型数据通常保存在 singleton 中,而不是全局变量中。 Here is an article briefly describing singletons in Objective-C.

您可以在初始化共享单例的类方法中加载数据。上传数据有点棘手,因为单例本身不知道何时进行。因此,您应该在单例类中创建实例方法-(void)uploadData,并在应用程序即将关闭时调用该方法。您的应用程序委托的applicationWillResignActive:方法是启动上传的好地方。

答案 1 :(得分:2)

我使用这样的单例:在类DataBase中使用一些数据数组实现共享方法:

+(id)share
{
    static id share = nil;

    if (share == nil) {
        share = [[self alloc] init];
    }

    return share;
}

然后在某些类中:self.dataBase = [DataBase share];

答案 2 :(得分:0)

您可以通过执行此操作来创建全局变量

extern NSString *someString;

@interface ......

@property (strong, nonatomic) NSString *someString;

@end

@implementation ......

@systhesize someString;

NSString *someString;

@end