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];//数据库更新



错误修改:






0 0