官方文档路径:https://github.com/sytuzhouyong/EasyFMDB
1、在Podfile文件中加入:pod 'FMDB'
2、导入第三方库:easyFMDB
1、在AppDelegate.m文件中,新建.db文件
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//新建数据库
[[ZyxFMDBManagersharedInstance] createDBFileAtSubDirectory:@""flag:NO];
returnYES;
}
2、模型类设置继承关系、添加类方法
#import "ZyxBaseModel.h"
@interface PersonalModels :ZyxBaseModel //继承
@property (nonatomic,retain)UIImage *iconImage; //头像
@property (nonatomic,retain)NSString *name; //昵称
@property (nonatomic,retain)NSString *birthday; //出生日期
@end
#import "PersonalModels.h"
@implementation PersonalModels
//类方法
+ (void)load {
[ZyxBaseModelregisteModel:self.class];
}
@end
3、新建单例类,在.pch文件中添加
#import "SynthesizeSingleton.h"
#import "AppGlobalManager.h"
// 单例化一个类存储用户资料信息
#import <Foundation/Foundation.h>
#import "PersonalModels.h"
@interface AppGlobalManager : NSObject
@property (nonatomic,strong) PersonalModels *loginUser;
SYNTHESIZE_SINGLETON_FOR_HEADER(AppGlobalManager)//声明一个单例
@end
#import "AppGlobalManager.h"
@implementation AppGlobalManager
SYNTHESIZE_SINGLETON_FOR_CLASS(AppGlobalManager)//实现一个单例
@end
SynthesizeSingleton.h
#define SYNTHESIZE_SINGLETON_FOR_HEADER(className) \
\
+ (className *)shared##className;
#define SYNTHESIZE_SINGLETON_FOR_CLASS(className) \
\
+ (className *)shared##className { \
static className *shared##className = nil; \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
shared##className = [[self alloc] init]; \
}); \
return shared##className; \
}
4、存储
//点击登录按钮
-(void)login{
if ([loginBtn.titleLabel.textisEqualToString:@"登录"]) {
//存储用户信息
if (iphoneNum) {//判断登录的手机号不为空
PersonalModels *model = [[PersonalModelsalloc]init];
NSDictionary *dict =@{kEasyFMDBModel:model,
kEasyFMDBPropertiesValues:@{@"iphoneNumber":iphoneNum}
};
WEAKSELF
[[ZyxFMDBManagersharedInstance] query:dictwithCompletion:^(BOOL success,NSArray *models) {
PersonalModels *loginmodel =nil;
if (models.count>0) {
loginmodel = models.firstObject;
} else {
loginmodel = [[PersonalModelsalloc] init];
}
loginmodel .iphoneNumber =iphoneNum;
loginmodel .password =password;
[loginmodel save];
[AppGlobalManagersharedAppGlobalManager].loginUser = loginmodel;//登录用户信息单例
PersonViewController *personVC = [PersonViewControllernew];
[weakSelf.navigationControllerpushViewController:personVCanimated:YES];
}];
}else{
[selfshowAlertViewWithTitle:@"亲,出错了"message:@""cancelTitle:@"重来"];
}
}
}
5、更新
//获取用户资料
userModel = [AppGlobalManagersharedAppGlobalManager].loginUser;
[self.navigationControllerpopViewControllerAnimated:YES];
userModel.iconImage =iconImage;
userModel.name =nameTF.text;
userModel.iphoneNumber =iphoneNumberTF.text;
userModel.signature =signatureTF.text;
userModel.iphoneN =iphoneNTF.text;
userModel.password =passwordTF.text;
[userModelupdate]; //数据库更新
错误修改: