上一节已经通过接口请求得到一个JSON串并实例化成为id类型。
当 id为NSDictionary
创建BaseModel用来实例化NSDictionary类型。
注意:
1 、NSInvocation在调用- (void)getReturnValue:(void )retLoc; retLoc 定义成NSObject类型是,APP崩掉,因为ARC:NSObject对象在getReturnValue的时候会被自动释放。可以写成如下:
2、子类继承父类BaseModel,定义属性与key键要一一对应,实例化对象调用-(id)initWithDataDic:(NSDictionary)data;
3、id不用做为属性名称,可以在子类重新赋值。
- (void)setAttributes:(NSDictionary *)dataDic{
[super setAttributes:dataDic];
self.cityId = dataDic[@“id”];
}
4、实例化子类如需要归档解档,需要在子类重写方法 - (NSDictionary*)attributeKey{
NSDictionary dic = @{
@“cityId”: @“cityId”,
@“city_date”: @“city_date”
};
return dic;
}
5、BaseModel定义如下两个方法,方便后面对数据的操作。
/*
- 将对象转成字典
*/
- (NSDictionary*)modelChangToDIC;//将对象转成字典
/**
- 将对象转成JSON字符串
*/
- (NSString *)modelChangToStr;
数据库操作:
1、创建FBBSqlManagerTool工具类,+ (void)load动态创建数据库,通过xml文件建立表,如下图:
2、宏定义基本的增删改查,方便使用,部分代码截图。
3、将数据库操作部分封装成FBBSqlite3.framework,方便在别的APP中使用。公开FBBSqlManagerTool.h头文件。
注意:添加FBBSqlite3.framework到工程目录入时,Build报not image类似的错误,具体不太记得了(本人重启xcode没有添加也没报错了),将FBBSqlite3.framework添加到Copy Files。