Bmob的封装

练习封装,用Bmob储存数据,

//请求成功回调
typedef void (^isSuccessful)();
typedef void (^error)(NSError *error);
@interface UserForBmob : NSObject

/*注册*/
+ (void)userIsRegisterWithName:(NSString *)name passwrod:(NSString *)password success:(isSuccessful)success;

/*登陆*/
+ (void)userIsLoginWithName:(NSString *)name passwrod:(NSString *)password success:(isSuccessful)success;

/*修改密码*/
+ (void)userIsChangeWithPassword:(NSString *)password success:(isSuccessful)success;

/*修改其他信息*/
+ (void)userIsChangeWithuserName:(NSString *)username userImage:(NSString *)userImage age:(NSString *)age height:(NSString *)height weight:(NSString *)weight success:(isSuccessful)success;

/*注销*/
+ (void)userIsClear;

.m

#import <BmobSDK/Bmob.h>
注册

// 注册

+ (void)userIsRegisterWithName:(NSString *)name passwrod:(NSString *)password success:(isSuccessful)success{
    
    BmobQuery *bquery = [BmobQuery queryWithClassName:@"UserInfo"];
    [bquery whereKey:@"name" equalTo:name];
    [bquery findObjectsInBackgroundWithBlock:^(NSArray *array, NSError *error) {
        if (error) {
            [UserForBmob showAlertView:@"请检查你的网络连接"];
        }else {
            if (array.count == 0) {
                
                BmobObject *userInfo = [BmobObject objectWithClassName:@"UserInfo"];
                [userInfo setObject:name forKey:@"name"];
                [userInfo setObject:password forKey:@"password"];
                [userInfo saveInBackgroundWithResultBlock:^(BOOL isSuccessful, NSError *error) {
                    //成功
                    if (isSuccessful) {
                        [UserForBmob showAlertView:@"注册成功"];
                        success();
                    }
                }];
            }else {
                //已经注册
                [UserForBmob showAlertView:@"该用户名已被注册!"];
            }
        }
    }];
}

登陆

+ (void)userIsLoginWithName:(NSString *)name passwrod:(NSString *)password success:(isSuccessful)success {
    
    BmobQuery *bquery = [BmobQuery queryWithClassName:@"UserInfo"];
    [bquery whereKey:@"name" equalTo:name];
    [bquery whereKey:@"password" equalTo:password];
    [bquery findObjectsInBackgroundWithBlock:^(NSArray *array, NSError *error) {
        if (error) {
            [UserForBmob showAlertView:@"请检查你的网络连接"];
        }else {
           
            if (array.count == 1) {
                //将Id存到本地
                for (BmobObject *object in array) {
                    NSLog(@"%@",object.objectId);
                    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
                    [defaults setObject:object.objectId forKey:@"objectId"];
                    [defaults synchronize];
                }
                [UserForBmob showAlertView:@"登陆成功"];
                success();
            }else {
                [UserForBmob showAlertView:@"账号或密码输入错误"];
            }
        }
    }];
}

修改密码

+ (void)userIsChangeWithPassword:(NSString *)password success:(isSuccessful)success {
    BmobQuery   *bquery = [BmobQuery queryWithClassName:@"UserInfo"];
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *objectId = [defaults objectForKey:@"objectId"];
    [bquery getObjectInBackgroundWithId:objectId block:^(BmobObject *object,NSError *error){
        //没有返回错误
        if (!error) {
            //对象存在
            if (object) {
                BmobObject *obj1 = [BmobObject objectWithoutDatatWithClassName:object.className objectId:object.objectId];
                
                [obj1 setObject:password forKey:@"password"];
                //异步更新数据
                [obj1 updateInBackground];
                success();
            }
        }else{
            //进行错误处理
        }
    }];
}

修改其它信息

+ (void)userIsChangeWithuserName:(NSString *)username userImage:(NSString *)userImage age:(NSString *)age height:(NSString *)height weight:(NSString *)weight success:(isSuccessful)success {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *objectId = [defaults objectForKey:@"objectId"];
    BmobQuery   *bquery = [BmobQuery queryWithClassName:@"UserInfo"];
    [bquery getObjectInBackgroundWithId:objectId block:^(BmobObject *object,NSError *error){
        //没有返回错误
        if (!error) {
            //对象存在
            if (object) {
                BmobObject *obj1 = [BmobObject objectWithoutDatatWithClassName:object.className objectId:object.objectId];
                //网络
                [obj1 setObject:username forKey:@"username"];
                [obj1 setObject:age forKey:@"age"];
                [obj1 setObject:userImage forKey:@"userImage"];
                [obj1 setObject:height forKey:@"height"];
                [obj1 setObject:weight forKey:@"weight"];
                //本地
                [defaults setObject:username forKey:@"username"];
                [defaults setObject:age forKey:@"age"];
                [defaults setObject:userImage forKey:@"userImage"];
                [defaults setObject:height forKey:@"height"];
                [defaults setObject:weight forKey:@"weight"];
                [defaults synchronize];
                
                //异步更新数据
                [obj1 updateInBackground];
                success();
            }
        }else{
            //进行错误处理
        }
    }];
}

注销

+ (void)userIsClear {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults removeObjectForKey:@"objectId"];
    [defaults removeObjectForKey:@"username"];
    [defaults removeObjectForKey:@"age"];
    [defaults removeObjectForKey:@"userImage"];
    [defaults removeObjectForKey:@"height"];
    [defaults removeObjectForKey:@"weight"];
    [defaults synchronize];
}

#pragma mark - 警告框

+ (void)showAlertView:(NSString *)string {
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:string delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
    [alertView show];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值