iOS TabBar应用中的全局变量

4

我正在使用Xcode 4.2创建iOS应用程序。 我有一个包含数据库的外部文件。我不想在每个视图中下载数据。我应该如何为标签栏应用程序创建一个全局变量?并且何时应该在应用程序关闭之前上传这个数据库?


1
你应该创建并使用单例实例。对于第二个问题,我无法给出好的答案。:( - Roman Temchenko
3个回答

5
在iOS应用程序中,模型数据通常保存在单例中,而不是全局变量中。这篇文章简要描述了Objective-C中的单例。 您可以在初始化共享单例的类方法中加载数据。将数据上传回去有点棘手,因为单例本身不知道何时进行上传。因此,您应该在单例类中创建一个实例方法-(void)uploadData,并在应用程序即将关闭时调用该方法。您的应用程序委托的applicationWillResignActive:方法是启动上传的好地方。

2
我会尽力为您翻译,请先确认以下翻译是否符合您的要求:

我像这样使用单例模式:在DataBase类中,我实现了一些数据数组以及共享方法:

请确认是否正确,谢谢!
+(id)share
{
    static id share = nil;

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

    return share;
}

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

意思是在某些类中,将self.dataBase赋值为[DataBase share]。

0
你可以通过以下方式创建全局变量:
extern NSString *someString;

@interface ......

@property (strong, nonatomic) NSString *someString;

@end

@implementation ......

@systhesize someString;

NSString *someString;

@end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接