OC: Block回调的使用demo

时间:2023-03-09 02:28:07
OC: Block回调的使用demo
Block 的用法

对于类的继承问题,子类在实现的时候,一般是自下而上,先看看下面的实现没有,没实现就向上找方法去实现。


//
// main.m #import <Foundation/Foundation.h>
#import "LoginMangage.h"
#import "NSString+Addition.h" //2 block的当做方法进行传值
//3 一种Block排序的写法(貌似还是以前的方法哦)
//4 用结构体(-1 0 1) NSComparisonResult 类型接收判断结果
//5 打印出当前时区的时间(不是格林威治时间哦)
//6 练习-打印出当前时区的时间
//7 dateWithTimeIntervalSinceNow:的使用
//8 (来自互联网-究竟是不是毫秒)获取自1970年以来的毫秒数的方法 ??????
//9 两个时间判断是否相等 获取时间间隔
//10 catergroy 对 NSString 类的方法的扩展
int main(int argc, const char * argv[]) { // @autoreleasepool {
// //// // 1.定义一个Block,返回值为bool,有两个NSString 实现判断两个字符串是否相等。
// //
// // 2.创建一个数组,初始化为@“123”,@“21”,@“33”,@“69”,@“108”,@“256”使用Block,进行数组排序,并输出内容
// //
// // 3.定义一个Block,返回值为NSInteger ,有两个参数,一个是NSArray 一个是NSString,实现判断数组时候包含此字符串,如果包含,返回字符串下标,如果不包含返回-1.
// //(1)
// printf("输入两个字符串\n");
// char str[2][10] = {0};
// NSMutableArray * arr = [NSMutableArray array];
// for (int i = 0; i < 2; i++) {
// scanf("%s",str[i]);
// NSString * str0 = [[NSString alloc]init];
// NSString * str1 = [NSString stringWithUTF8String:str[i]];
// arr[i] = [str0 stringByAppendingString:str1];
// }
// BOOL (^compareWithTwoNString)(NSString *,NSString *) = ^(NSString *s0,NSString *s1){
// return [s0 isEqualToString:s1];
// };
// int isEqual = compareWithTwoNString(arr[0],arr[1]);
// if (isEqual) {
// NSLog(@"两次输入相等");
// }else{
// NSLog(@"两次输入不相等");
// }
// //(2)
// NSMutableArray * muArr = [@[@"123",@"21",@"69",@"33",@"108",@"256"]mutableCopy];
// [muArr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// return [obj1 compare:obj2];
// }];
// NSLog(@"排序之后为 %@",muArr);
// //(3)
// NSInteger(^isInIt)(NSArray *,NSString *) = ^(NSArray * arr,NSString * str){
// NSInteger tem = 0;
// for (int i = 0; i < [arr count]; i++) {
// if ([arr[i] isEqualToString:str]) {
// tem++;
// NSLog(@"已经找到了");
// return tem ;
// break;
// }
// }
// NSLog(@"没有找到");
// tem = -1;
// return tem;//注意这里的 return 的位置
// };
// NSArray * arrary = @[@"lu",@"zhang",@"huang ",@"li ",@"zhao",@"wang",@"qian"];
// NSInteger afterFind = isInIt(arrary,@"wang");
// NSLog(@"下标为%ld",afterFind);
// } // @autoreleasepool {
// //2 block的当做方法进行传值
// LoginMangage * login1 = [[LoginMangage alloc]init];
// [login1 initWithName:@"user" paswword:@"123456" succe:^(NSString *success) {
// NSLog(@"%@",success);
// } failure:^BOOL(NSString *errorMessage) {
// NSLog(@"%@",errorMessage);
// return 1;
// }];
// } // @autoreleasepool {
// //3 一种Block排序的写法(貌似还是以前的方法哦)
// NSArray * stringArray = [NSArray arrayWithObjects:@"abc 1", @"abc 21", @"abc 12",@"abc 13",@"abc 05",nil];
// NSComparator sortBlock = ^(id string1 ,id string2){//貌似这里开始的三行代码没有什么作用
// return [string1 compare:string2];
// };
// NSArray * sortArray = [stringArray sortedArrayUsingSelector:@selector(compare:)];
// NSLog(@"排序后的为:%@",sortArray);
// } // @autoreleasepool {
// //4 用结构体(-1 0 1) NSComparisonResult 类型接收判断结果
// NSString * str1 = @"123";
// NSString * str2 = @"456";
// NSComparisonResult(^compareStrings)(NSString *,NSString *) = ^(NSString * string1 ,NSString * string2){
// return [string1 compare:string2];
// };
// NSComparisonResult resu = compareStrings(str1,str2);
// if (resu == 1) {
// NSLog(@"str1小于str2");
// }
// if (resu == -1) {
// NSLog(@"str1大于str2");
// }
// if (resu == 0) {
// NSLog(@"str1等于str2");
// }
// } // @autoreleasepool {
// //5 打印出当前时区的时间(不是格林威治时间哦)
// NSDate * datenow = [NSDate date];//注意这里不能写成了 NSData
//// NSLog(@"%@",datenow);//没有修改时间显示格式的的时候打印结果
// NSString * datestring = @"yyyy年 MMM d 日 是一年的第 D 天 EEEE ahh:MM:SS";
// NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
// [formatter setDateFormat:datestring];
// NSString * strdate = [formatter stringFromDate:datenow];
// NSLog(@"获取当前时间为:%@",strdate);
// //互联网
// //时区转换,取得系统时区,取得格林威治时间差秒
// //(http://www.isaced.com/post-175.html) 已经实现在控制台的转化为当前时区
// NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone]secondsFromGMT];
// NSLog(@"%f",timeZoneOffset/60.0/60.0);
// datenow = [datenow dateByAddingTimeInterval:timeZoneOffset];
// [formatter setDateFormat:@"现在日期:yyyy年MM月dd日\n现在时刻:aHH:mm:ss"];
// NSDate * dtime = [NSDate date];
// NSString * newDateStr = [formatter stringFromDate:dtime];
// NSLog(@"%@",newDateStr);
// } // @autoreleasepool {
// //6 练习-打印出当前时区的时间
// NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone]secondsFromGMT];
// NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
// [dateFormatter setDateFormat:@"\n现在日期:yyyy年 MM月 d 日 EEEE\n 现在时间:aHH:mm:ss "];
// NSDate * dateNow = [NSDate date];
// dateNow = [dateNow dateByAddingTimeInterval:timeZoneOffset];
// NSString * afterTrDate = [dateFormatter stringFromDate:dateNow];
// NSLog(@"当前时间:%@",afterTrDate);
// } // @autoreleasepool {
// //7 dateWithTimeIntervalSinceNow:的使用
// NSDate * dateNow = [NSDate date];
// NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone]secondsFromGMT];
// [dateNow dateByAddingTimeInterval:timeZoneOffset];
// NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
// [dateFormatter setDateFormat:@"日期:yyyy年 MM 月 dd 日 EEEE\n时间:aHH:mm:ss"];
// NSString * afterDate = [dateFormatter stringFromDate:dateNow];
// NSLog(@"\nnowtime = %@",afterDate);
// //获取到现在一段时间间隔的日期
// NSDate * tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
// NSString * afterDaterTomro = [dateFormatter stringFromDate:tomorrowDate];
// NSDate * yestredayDate = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];
// NSString * afterDateYesday = [dateFormatter stringFromDate:yestredayDate];
// NSLog(@"\ntomorrowdate = %@\nyesterday = %@ ",afterDaterTomro,afterDateYesday);
// } // @autoreleasepool {
// //8 (来自互联网-究竟是不是毫秒)获取自1970年以来的毫秒数的方法 ??????
// NSDate * dateNow = [NSDate date];
// NSTimeInterval time = [[NSDate date] timeIntervalSince1970];
// // NSTimeInterval返回的是double类型,输出会显示为10位整数加小数点加一些其他值
// // 如果想转成int型,必须转成long long型才够大。
// // 将double转为long long型
// long long dTime = [[NSNumber numberWithDouble:time]longLongValue];
// // 输出long long型
// NSString * curTime = [NSString stringWithFormat:@"%llu",dTime];
// NSLog(@"%@",curTime);
// }
//
// @autoreleasepool {
// //9 两个时间判断是否相等 获取时间间隔
// NSDate * dateNow = [NSDate date];//获取当前时间
// NSTimeInterval timeZoneOffset = [[NSTimeZone systemTimeZone]secondsFromGMT];//获取与格林威治时区的时差秒
// [dateNow dateByAddingTimeInterval:timeZoneOffset];//格林威治时区加上时差
// NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];//时间格式设置器
// [dateFormatter setDateFormat:@"日期:yyyy年 MM 月 dd 日 EEEE 时间:aHH:mm:ss"];//注意这里的时间设置格式不能写错啦
// NSString * afterTime = [dateFormatter stringFromDate:dateNow];
// NSLog(@"%@",afterTime);
// NSDate * yesterday = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];
// NSTimeInterval timeInterval = [dateNow timeIntervalSinceDate:yesterday];
// NSLog(@"%.f",timeInterval/24/60/60);
// NSTimeInterval timeInterval1970 = [yesterday timeIntervalSince1970];
// NSLog(@"1970年到现在的秒数为%.f",timeInterval1970);
// //比较两个时间(返回一个枚举值)默认为升序
// NSComparisonResult result = [dateNow compare:yesterday];
// if (result != 0) {
// NSLog(@"NSComparisonResult接收的结果是两个时间段不相等");
// }
// BOOL isEqual = [dateNow isEqualToDate:yesterday];
// if (isEqual) {
// NSLog(@"两个日期相等");
// }else{
// NSLog(@"两个日期不相等");
//
// }
// } // @autoreleasepool {
// //10 catergroy 对 NSString 类的方法的扩展
// NSString * str = @"HHH";
// [str sayHi];
// //只能添加方法
// //为 NSString 扩充方法 :获取字符串的首字母并大写
// NSString * oneString = [str getFirstCharacter];
// NSLog(@"获取的首字母为:%@",oneString);
// NSString * newStr = [str change];
// NSLog(@"%@",newStr);
// NSInteger num = 13523526302;
// NSString * newstrnum = [[NSString alloc]init];
// newStr = [str transToString:num];//把 NSInteger 型数字转化为 字符串数字
// NSLog(@"%@",newStr);
// NSInteger nsnum = [newStr stringToValue];//把字符串数字转化为 NSInteger 型数字
// NSLog(@"%ld",nsnum);
// } return ;
}

main.m

//
// NSString+Addition.h #import <Foundation/Foundation.h> @interface NSString (Addition)//这就是一个 NSString 类的 category(类方法的扩展)
-(void)sayHi;
//获取字符串的首字母并以大写的形式
- (NSString *)getFirstCharacter;
//把对应的字符串日期转化为特定的形式@"20150819"--@"2015.08.19"
- (NSString *)change;
//把基本整型转化为字符串类型
- (NSString *)transToString:(NSInteger)num;
//把字符串转化为基本的整型
- (NSInteger)stringToValue;
@end

NSString+Addition.h

//
// NSString+Addition.m
//NSString+Addition.h" @implementation NSString (Addition)
-(void)sayHi{
NSLog(@"我是一个分类方法哦");
}
//获取字符串的首字母并以大写的形式
- (NSString *)getFirstCharacter{
// return [[self substringToIndex:1]uppercaseString];
return [[self substringToIndex:]capitalizedString];
}
//把对应的字符串日期转化为特定的形式@"20150819"--@"2015.08.19"
- (NSString *)change{
// NSDateFormatter * dateFormantter = [[NSDateFormatter alloc]init];
// [dateFormantter setDateFormat:@"日期: yyyy年 MM月 dd日 EEEE 时间:aHH:mm:ss"];
NSMutableString * newString = [NSMutableString stringWithString:self];
if ([self length] < ) {
NSLog(@"长度不够");
}else{
// [str substringToIndex:4];//这是截取字符串的方法,这里搞混了,这里要插入
// [str substringToIndex:7];
NSString * str = @".";
[newString insertString:str atIndex:];
[newString insertString:str atIndex:];
}
return newString;
}
//把基本整型转化为字符串类型
- (NSString *)transToString:(NSInteger)num{
NSString * newstr = [NSString stringWithFormat:@"%ld",num];
return newstr;
}
//把字符串转化为基本的整型
- (NSInteger)stringToValue{
return [self integerValue];
}
@end

NSString+Addition.m

//
// LoginMangage.h
// 08-22Am
// #import <Foundation/Foundation.h> typedef void(^mysuccessblock) (NSString * accuntName);
typedef BOOL(^myfailureblock) (NSString * failure);
@interface LoginMangage : NSObject
-(void)initWithName:(NSString *)name
paswword:(NSString *)password
succe:(mysuccessblock)succes
failure:(myfailureblock)errorMessage; @end

LoginMangage.h

//
// LoginMangage.m
//LoginMangage.h" @implementation LoginMangage
-(void)initWithName:(NSString *)name
paswword:(NSString *)password
succe:(mysuccessblock)succes
failure:(myfailureblock)errorMessage{
if (name == @"user" && password == @"") {
succes(@"登陆成功");
}else{
BOOL result = errorMessage(@"账户名或密码错误");
if (result) {
NSLog(@"错误已经处理");
errorMessage(@"请重置密码");
}else{
NSLog(@"没有处理错误");
errorMessage(@"请联系管理员");
}
}
}
@end

LoginMangage.m


//
// main.m
#import <Foundation/Foundation.h>
#import "Person.h"
#import "DownLoadManager.h"
#import "LoginManage.h" //
int maxValue(int,int);
int maxValue(int a, int b){
return a > b ? a:b;
}
//2 Block变量的访问
int opennum = ;
//3
//4 简单的字符串拼接
//5 使用Block对字符串进行比较(NSComparisonResult)
//6 简单的Block 判断两个数字的大小
//7 对人的一些信息进行排序
//8 block的传值,与回调传值
int main(int argc, const char * argv[]) {
// @autoreleasepool {
// // insert code here...
// NSLog(@"Hello, World!");
// //函数指针
// int (*p)(int,int) = maxValue;
// int max = p(12,48);
// NSLog(@"max = %d",max);
// //block 语句块
// int (^ minOfTwo)(int,int) = ^(int a, int b){
// return a < b ? a : b;
// };
// int minoftwo = minOfTwo(45,4);
// NSLog(@"min = %d",minoftwo);
// } // @autoreleasepool {
// // 2 Block变量的访问
// __block int number = 20;
// void (^myblock)(int) = ^(int a){
// NSLog(@"用_block修饰的实例变量为%d",a);
// number = 100;
// NSLog(@"修改了Block外部定义的可在Block内被修改的数%d",number);
// opennum += 1;
// NSLog(@"全局变量无需用__block修饰就可以在这里被修改为%d",opennum);
// };
// myblock(number);
// } // @autoreleasepool {
//3 Block 拼接字符串
// NSArray * strArr = @[@"Hello",@"UUUU",@"39"];
// NSString *(^appendString)(NSArray *) = ^(NSArray * arr){
// NSString * newstr = @"";
// for (int i = 0; i < [arr count]; i++) {
// NSString * append = arr[i];
// newstr = [newstr stringByAppendingString:append];
// }
// return newstr;
// };
// NSString * strarry = appendString(strArr);
// NSLog(@"拼接之后为:%@",strarry);
// } // @autoreleasepool {
// //4简单的字符串拼接
// NSArray * arr = @[@"Hello",@"IIIII",@"39"];
// NSString * newstr = [[NSString alloc]init];
// NSString * newArr = [[NSString alloc]init];
// for (int i = 0; i < [arr count]; i++) {
// newstr = arr[i];
// newArr = [newArr stringByAppendingString:newstr];
// }
// NSLog(@"%@",newArr);
// }
//
// @autoreleasepool {
// //5 使用Block对字符串进行比较(NSComparisonResult)
// NSComparisonResult (^compareString)(NSString * , NSString *) = ^(NSString * arr1,NSString *arr2){
// NSComparisonResult result = [arr1 compare:arr2];
// if (result == NSOrderedSame) {
// NSLog(@"arr1与 arr2 相等");
// }
// if (result == NSOrderedAscending) {
// NSLog(@"arr1 小于 arr2");
// }
// if (result == NSOrderedDescending) {
// NSLog(@"arr1 大于 arr2");
// }
// return result;
// };
// NSString * arr1 = @"HHHH";
// NSString * arr2 = @"HHH";
// compareString(arr1,arr2);
// } // @autoreleasepool {
// //6 简单的Block 判断两个数字的大小
// void (^ compareTwoNum)(int a,int b) = ^(int a ,int b){
// if (a > b) {
// NSLog(@"第一个数大于第二个数");
// }
// if (a < b) {
// NSLog(@"第一个数小于第二个数");
// }
// if (a == b) {
// NSLog(@"两个数字相等");
// }
// };
// compareTwoNum(12,78);
//
// //Block判断两个NSInteger的类型数字的大小(主义先进行转化为 NSNumber 类型数字)
// NSComparisonResult (^compareNsinterger)(NSInteger ,NSInteger) = ^(NSInteger a, NSInteger b){
// NSNumber * object1 = [NSNumber numberWithInteger:a];
// NSNumber * object2 = [NSNumber numberWithInteger:b];
// NSComparisonResult result = [object1 compare:object2];
//// NSNumber * obj1 = @(a);
//// NSNumber * obj2 = @(b);
// return result;
// };
// NSComparisonResult comresult = compareNsinterger(45,78);
//
// //不可变数组的排序
// NSArray * arr = [NSArray arrayWithObjects:@"hellow", @"TTTTTT", @"39", @"HHHH", @"WWWW", nil];
//// NSMutableArray * mutArr = [NSMutableArray arrayWithArray:arr];
// NSArray * newArray = [arr sortedArrayUsingSelector:@selector(compare:)];
// NSLog(@"默认的升序排列之后为:%@",newArray);
// NSArray * newarr = [arr sortedArrayWithOptions:(NSSortOptions)1 usingComparator:^NSComparisonResult(id obj1, id obj2) {
// return [obj1 compare:obj2];
// }];
// NSLog(@"%@",newarr);
//
// //可变数组的排序
//// NSArray * arr = [NSArray arrayWithObjects:@"hellow", @"JJJJJ", @"39", @"HHH", @"XXXX", nil];
// NSMutableArray * mutArr = [NSMutableArray arrayWithArray:arr];//这里把上面的arr转化为一个可变数组并重新为可变数组开辟空间
// NSMutableArray * mu2arr = [@[@"4",@"3",@"1",@"2"]mutableCopy];//将不可变数组转化为可变数组的mutableCopy方法
// [mutArr sortedArrayUsingSelector:@selector(compare:)];//返回一个排好序的数组
// [mu2arr sortUsingSelector:@selector(compare:)];
// NSLog(@"%@",mutArr);
// NSLog(@"%@",mu2arr);
//// 使用Block可以改变排序的模式
// [mu2arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// return -[obj1 compare:obj2];//很奇怪上面的两次排序不注释掉的话,这里不能实现降序排序???????是因为这里需要有一个 NSArray 的变量去接收一下就对了
// }];
// NSLog(@"%@",mu2arr);
// } // @autoreleasepool {
// //7 对人的一些信息进行排序
// Person *per1 = [[Person alloc]initWithName:@"KKKKK" age:23 heigeht:1.78];
// Person *per2 = [[Person alloc]initWithName:@"hangtian" age:30 heigeht:1.86];
// Person *per3 = [[Person alloc]initWithName:@"liucuihua" age:34 heigeht:1.72];
// Person *per4 = [[Person alloc]initWithName:@"zhangfeng" age:27 heigeht:1.68];
// Person *per5 = [[Person alloc]initWithName:@"*nwei" age:25 heigeht:1.64];
// Person *per6 = [[Person alloc]initWithName:@"zahnghong" age:19 heigeht:1.78];
// Person *per7 = [[Person alloc]initWithName:@"shixiaofei" age:18 heigeht:1.70];
// Person *per8 = [[Person alloc]initWithName:@"liusi" age:24 heigeht:1.75];
// NSArray * perArr = [NSArray arrayWithObjects:per1,per2,per3,per4,per5,per6,per7,per8, nil];
//// NSArray * newPerArr = [perArr sortedArrayUsingSelector:@selector(compare:)];//方法一
// NSArray * newPerArr = [perArr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
//// return [[obj1 name] compare:[obj2 name]];//name升序排序
//// return [@([obj1 age]) compare:@([obj2 age]) ];//按照年龄升序排序
//// return [@([obj1 height])compare:@([obj2 height])];//按照升高升序排序
// return [@([obj2 age]) compare:@([obj1 age])];
// }];
// NSLog(@"按年龄降序排序后为:%@",newPerArr);
// } // @autoreleasepool {
// //8 block的传值,与回调传值
// DownLoadManager * down = [[DownLoadManager alloc]init];
// [down download:^int(int n) {
// NSLog(@"得到数字:%d",n);
// return 45;//这里想用回调返回数字
// }];
// LoginManage * login = [[LoginManage alloc]init];
// [login loginWithname:@"user" password:@"123456" success:^(NSString *accountName) {
// NSLog(@"%@",accountName);
// } failure:^BOOL(NSString *errorMessage) {
// NSLog(@"%@",errorMessage);
// return 0;
// NSLog(@"%@",errorMessage);
// }];
// } return ;
}

main.m

//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
NSString *_name;
NSInteger _age;
CGFloat _height;
}
//@property NSString * address; -(void)setName:(NSString *)name;
-(NSString *)name;
-(void)setAge:(NSInteger)age;
-(NSInteger)age;
-(void)setHeight:(CGFloat)_height;
-(CGFloat)height;
//初始化
-(id)initWithName:(NSString *)name
age:(NSInteger)age
heigeht:(CGFloat)height;
//便利构造器
+(Person *)personWithName:(NSString *)name
age:(NSInteger)age
height:(CGFloat)height;
-(NSString *)description;
@end

Person.h

//
// Person.m #import "Person.h" @implementation Person -(void)setName:(NSString *)name{
_name = name;
}
-(NSString *)name{
return _name;
}
-(void)setAge:(NSInteger)age{
_age = age;
}
-(NSInteger)age{
return _age;
}
-(void)setHeight:(CGFloat)height{
_height = height;
}
-(CGFloat)height{
return _height;
}
//初始化
-(id)initWithName:(NSString *)name
age:(NSInteger)age
heigeht:(CGFloat)height{
self = [self init];
if (self) {
_name = name;
_age = age;
_height = height;
}
return self;
}
//便利构造器
+(Person *)personWithName:(NSString *)name
age:(NSInteger)age
height:(CGFloat)height{
Person * per = [[Person alloc]initWithName:name age:age heigeht:height];
return per;
}
-(NSString *)description{
return [NSString stringWithFormat:@"name:%@ age:%ld height:%.2f",_name,_age,_height];
}
@end

Person.m

//
//
#import <Foundation/Foundation.h> typedef int (^myBlock) (int n);
typedef void (^myBlock1) (int n,int b);
@interface DownLoadManager : NSObject -(int)download:(myBlock)block;
-(void)chuanzhi:(myBlock1)block1; @end

DownLoadManager.h

//
// DownLoadManager.m
//
#import "DownLoadManager.h" @implementation DownLoadManager -(int)download:(myBlock)block{
NSLog(@"已经传值");
return block();
}
-(void)chuanzhi:(myBlock1)block1{ } @end

DownLoadManager.m

//
// LoginManage.h
//
#import <Foundation/Foundation.h> typedef void(^successfulBlock) (NSString *accountName);
typedef BOOL(^failureBlook) (NSString *errorMessage);
@interface LoginManage : NSObject
-(void)loginWithname:(NSString *)name
password:(NSString *)password
success:(successfulBlock)success
failure:(failureBlook)failure;
@end

LoginManage.h

//
// LoginManage.m
//
#import "LoginManage.h" @implementation LoginManage
-(void)loginWithname:(NSString *)name
password:(NSString *)password
success:(successfulBlock)success
failure:(failureBlook)failure{
if ([name isEqualToString:@"user"] && [password isEqualToString:@""]) {
NSLog(@"登陆成功");
success(name);
}
else{
BOOL result = failure(@"账户或密码错误");
if (result) {
NSLog(@"错误已经处理");
failure(@"请你重设登录密码");
}
else{
NSLog(@"错误没有处理");
NSLog(@"请尽快联系管理员重置密码");
}
}
}
@end

LoginManage.m