Which is better way of handling callback in iOS -
i have created custom network handler managing server calls application. internally uses nsurlconnection , callback function block once data fetch complete. current can set callback method or callback codeblock. wanted understand 1 better , why.
option 1 :
basenetworkhelper * helper = [[basenetworkhelper alloc] initwithurl:@"request/url/as/string" action:@"action/for/request" params:params]; [helper addfinishaction:self sel:@selector(markreadfinished:)];
is way arc warning when call callback method once action complete. bellow.
if (_target) { if ([_target respondstoselector:selector]) { [_target performselector:selector withobject:rdata]; } }
option 2:
basenetworkhelper * helper = [[basenetworkhelper alloc] initwithurl:@"request/url/as/string" action:@"action/for/request" params:params]; [helper startdownload:^(nsdata *data, nserror *error) { // business logic response handling / error handling }];
thanks.
the block places completion code in same context code begins request, makes easier read , captures values -- initialized -- you'll want on completion.
if opt target/selector approach, according this, there's way work around warning in llvm >=3. (see highly upvoted answer down page bit).
Comments
Post a Comment