IOS学习 easyFMDB
来源:互联网 发布:三维图制作软件 编辑:程序博客网 时间:2024/05/16 06:35
官方文档路径: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];//数据库更新
错误修改:
- IOS学习 easyFMDB
- IOS 学习
- ios学习
- ios学习
- IOS学习
- IOS 学习
- iOS 学习
- 学习iOS
- iOS学习
- ios 学习
- IOS学习
- ios 学习
- iOS学习
- ios学习
- ios学习 - 控件学习
- IOS学习 CGContextRef学习
- IOS学习 NSUserDefault学习
- ios学习--ios推送机制
- POJ 1144 Network Tarjan 求无向图的割点的个数 Tarjan 模板题
- 神奇的Android Studio Template
- 系统学习JavaWeb之特别篇使用注解WebServlet配置Servlet报404错误的原因
- github上好的网站
- WIFI设备管理工具iwconfig/iwpriv及对应内核态的实现机制
- IOS学习 easyFMDB
- Unity脚本编程二:重要的组件和类
- RC and RTM
- ionic开发常见问题及解决方案(三)
- 再学数据结构之顺序表(二)
- [C#][ASP.NET]DataSet,DataTable(DataSet)导出至指定XLS,DBF模版
- js实现选项卡(Tab)
- 这是一个用于拦截android实时短信的库,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的app项目
- 谈谈JS中的函数节流