使用sqlite3时编译错误:具有"retain(或strong)"属性的属性必须是对象类型

ite*_*nyh 3 sqlite iphone objective-c ios

当我尝试声明一个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
Run Code Online (Sandbox Code Playgroud)

Hai*_*lei 8

sqlite3 *database不是指向Objective-C对象的指针,而是指向struct sqlite3.你不能retain/ release它因为内存不是由Objective-C运行时管理的.用assign而不是retain.