我已经开发了一个应用程序,我使用sq-lite数据库包装器(BWDB - Bill W的包装器.....)用于基于选项卡的应用程序,当我使用此代码在我的第一个视图控制器上创建数据库对象时/ p>
- (DBAccess *) loadDBAccessDatabase {
// NSLog(@"%s", __FUNCTION__);
if (!_dbObject) {
NSString * _dbFileName = @"turfnutritiontool_ver_one.db";
_dbObject = [[DBAccess alloc] initWithSSDBAccessFilename:_dbFileName];
}
// Check Point
[TestFlight passCheckpoint:@"LOAD_DATABASE"];
return _dbObject;
}
并且它在这个视图控制器中对我有用但是如果我在第二个视图控制器加载时创建一个新对象,所以新的数据库提取工作正常,但是我无法插入或更新数据库,它说db是锁定的告诉我如何在所有应用程序中只管理一个数据库对象并发送到其他视图控制器,以便它正常工作,
答案 0 :(得分:0)
所以你要创建包含这段代码的类的两个对象?如果是这样,最简单的方法可能是使_dbObject
成员静态,如
static DBAccess *_dbObject;
更进一步,您可以考虑为数据库基准引用创建单例。 Apple在Mac OS X Developer Library中提供了Cocoa单例的介绍。