ASIHTTPRequest (NSURLRequest ), , , delegate didFinishSelector, - , URL- . , :
- (void)startURLRequest
{
ASIHTTPRequest *myRequest;
myRequest.delegate = self;
myRequest.didFinishSelector = @selector(HTTPRequestDidFinish:);
[myRequest startAsynchronous];
}
- (void)HTTPRequestDidFinish:(ASIHTTPRequest *)request
{
NSLog(@"Request %@ did finish, got data: %@", request, request.data);
[myTargetForData didReceiveData:request.data fromURL:request.originalURL];
}
Apple runloop HTTP, . , , - , / , .
, , , - (: UIKit ),
- (void)postResult:(NSString *)result
{
instanceOfUILabel.text = result;
}
- (void)doExpensiveOperationOn:(NSString *)source
{
[self postResult:result];
}
- (IBAction)userWantsOperationDone:(id)sender
{
[self doExpensiveOperationOn:@"some value or another"];
}
:
- (void)postResult:(NSString *)result
{
instanceOfUILabel.text = result;
}
- (void)doExpensiveOperationOn:(NSString *)source
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(postResult:) withObject:result waitUntilDone:YES];
[pool release];
}
- (IBAction)userWantsOperationDone:(id)sender
{
[self performSelectorOnBackgroundThread:@selector(doExpensiveOperationOn:) withObject:@"some value or another"];
}
concurrency, , threaded, , , , IBAction, [] , doExpensiveOperationOn . - -, .