-(void)httpSample1{
/********
* self不会释放,直到block释放self才释放,因为block中有对self的强引用
*******/
HttpRequest *request = [[HttpRequest alloc] init];
[request setStrUrl:@"http://192.168.1.129:9097/api/dog/device/fence/effectiveTimes"];
[request setCompletionBlockWithType:HttpTypeGet success:^(HttpResponse *response) {
self.textView.text = @"succ";
NSLog(@"current thread :%@",[NSThread currentThread]);
} failure:^(HttpResponse *response) {
self.textView.text = response.errorDescription;
NSLog(@"error :%@",response.errorDescription);
}];
}
-(void)httpSample2{
/********
* self先释放,strongself变为nil,block回调时不会改变strongself的成员变量值
*******/
HttpRequest *request = [[HttpRequest alloc] init];
[request setStrUrl:@"http://192.168.1.129:9097/api/dog/device/fence/effectiveTimes"];
__weak FrameworkDemoVC *weakSelf = self;
[request setCompletionBlockWithType:HttpTypeGet success:^(HttpResponse *response) {
__strong FrameworkDemoVC *strongSelf = weakSelf;
strongSelf.textView.text = @"succ";
NSLog(@"current thread :%@",[NSThread currentThread]);
} failure:^(HttpResponse *response) {
__strong FrameworkDemoVC *strongSelf = weakSelf;
strongSelf.textView.text = response.errorDescription;
NSLog(@"error :%@",response.errorDescription);
}];
}
/****!!!!!!!!!!!!!推荐用法 推荐用法 推荐用法 推荐用法 推荐用法 推荐用法****/
-(void)httpSample3{
/********
* 和httpSample2一个效果,故实际使用时使用httpSample3即可,无需再对weakSelf进行一次强引用
*******/
HttpRequest *request = [[HttpRequest alloc] init];
[request setStrUrl:@"http://192.168.1.129:9097/api/dog/device/fence/effectiveTimes"];
__weak FrameworkDemoVC *weakSelf = self;
[request setCompletionBlockWithType:HttpTypeGet success:^(HttpResponse *response) {
weakSelf.textView.text = @"succ";
NSLog(@"current thread :%@",[NSThread currentThread]);
} failure:^(HttpResponse *response) {
weakSelf.textView.text = response.errorDescription;
NSLog(@"error:%@",response.errorDescription);
}];
}