In the first version of iOS, the synchronous mode of HTTP is used in many places, causing the thread to block and develop a simple afhttpclient asynchronous callback mode.
Callback's protocol:
@protocol Myafnetworkingresponse <nsobject>
@required
-(void) Myhttpresponse: (nsstring*) ret Type: (nsstring*) strtype returndata: (nsobject *) retdata;
@end
Afhttpclient implementation classes for asynchronous communication:
@interface myafnetworkingclient: afhttpclient
@property nsurl* mserverurl;//http service address
@property ID<myafnetworkingresponse> delegate;//This is the most important, callback agent
class initialization function
-(ID) init;
-(ID) Initwithbaseurl: (nsurl *) URL;
/* Then a bunch of implemented functions */
.....
@end
Then in Viewcontroller:
@interface Mainviewcontroller () < Myafnetworkingresponse>
@end
@implementation Mainviewcontroller
-(void) viewdidload {
[Super viewdidload];
Initialization
self. Mafnetworkinghttpclient = [[myafnetworkingclient alloc] init];
self. Mafnetworkinghttpclient. Delegate = self;
}
-(void) Myhttpresponse: (nsstring*) ret Type: (nsstring*) strtype returndata: ( NSObject*) retinfo{
__weak mainviewcontroller* wself = self;
if ([Strtype isequaltostring:@ "xxxx"]) {
Implementation processing of a specific HTTP type
}Else if([Strtype isequaltostring:@ "xxxx"]) {
Implementation processing of a specific HTTP type
}
}
@end
Asynchronous callback pattern for Afhttpclient