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