【发布时间】:2010-10-31 23:57:10
【问题描述】:
我想创建基于数据库的模型,所以我想使用我自己的 DatabaseModel 类来管理数据库连接,并且每个使用数据库的类都派生自它(它将是模型和表之间的映射) .我正在使用 sqlite API。
由于我只需要一个数据库连接实例,我创建了一个静态变量来存储连接实例
数据库模型.h --------------- @interface 数据库模型:NSObject { } // 连接实例 静态 FMDatabase *数据库; +(BOOL) 打开; +(无效)关闭; +(id)获取数据库; @结尾 数据库模型.m --------------- // 有必要吗? 静态 FMDatabase *database = nil; @implementation 数据库模型 +(BOOL) 打开 { // 建立连接(涂鸦代码) 数据库 = [DBAPI 打开]; } +(无效)关闭 { // ... } +(id)获取数据库 { // 抛出 bad_memory_access [数据库保留]; 返回数据库; } @结尾 我的类.h --------- @interface MyClass : 数据库模型 { } -(无效)foobar; @结尾 我的班级.m --------- @implementation MyClass -(无效)foobar { // 这个赋值不起作用 数据库 = [数据库模型 getDatabase]; } @结尾在这种情况下 [database retain] 会引发 bad_access 异常。我不太明白,当数据库是静态变量时,为什么会收到此消息...
【问题讨论】:
标签: objective-c static