我正在xcode 4.2中创建ios应用程序。我有数据库的外部文件。我不想在每个视图中都下载数据。我应该如何为选项卡应用程序创建一个全局变量?在关闭应用程序之前,我应该什么时候上传这个数据库?
在iOS应用程序中,模型数据通常保存在singleton中,而不是全局变量中。这里有一篇文章简要描述了Objective-C中的singleton。
您可以在初始化共享单例的类方法中加载数据。上传回数据有点麻烦,因为singleton本身不知道何时进行。因此,您应该在singleton类中创建一个实例方法-(void)uploadData
,并在应用程序即将关闭时调用该方法。应用程序代理的applicationWillResignActive:
方法是启动上载的好方法。
我使用这样的singletones:在具有一些数据数组的类数据库中,我实现共享方法:
+(id)share
{
static id share = nil;
if (share == nil) {
share = [[self alloc] init];
}
return share;
}
然后在某些类中:self.dataBase=[dataBase share];
您可以通过执行此来创建全局变量
extern NSString *someString;
@interface ......
@property (strong, nonatomic) NSString *someString;
@end
@implementation ......
@systhesize someString;
NSString *someString;
@end