练习封装,用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];
}