当我尝试声明一个sqlite3对象时,我在下面的代码中遇到了编译错误。是"数据库"不是对象类型?为什么会发生这种情况,我该如何解决?
#import <Foundation/Foundation.h>
#import <sqlite3.h>
@interface BasicDao : NSObject
@property (nonatomic, retain) sqlite3 *database; //error : Property with 'retain (or strong)' attribute must be of object type
@end
答案 0 :(得分:8)
sqlite3 *database
不是指向Objective-C对象的指针,而是指向struct sqlite3
的C指针。您不能retain
/ release
,因为内存不是由Objective-C运行时管理的。使用assign
代替retain
。