ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:[NSURL URLWithString:kLoginURL]]; [request setTimeOutSeconds:60]; [request setRequestMethod:@"POST"]; [request addPostValue:userName forKey:@"userNo"]; //设置请求完成的Block [request setCompletionBlock:^{ NSData *data=request.responseData; id result=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; callBack([GParser parserLoginInfo:result]); }]; //异步 [request startAsynchronous]; 这里我怎么得到数据,并且不会循环引用啊 |
|
有人知道吗?
|
|
+(void)loginUserByUserName:(NSString*)userName andPassword:(NSString*)password completion:(CallBack)callBack
我是在类方法里做的请求,我想拿到请求到的数据,解析后通过block传回去 |
|
40分 |
Block的循环引用问题。对象request 持有block, 而在block中又持有了request对象,造成循环引用
解决办法就是:让block中持有的request 对象声明成弱引用关系。代码中的体现如下 __weak typeof(request) weakRequest = request; |
太感谢了,之前我把这句写block里面去了 |