iPhone开发应用中NSOperation多线程使用

移动开发 iOS
本文介绍介绍的iPhone开发应用中NSOperation多线程使用,详细的介绍了NSOperation多线程的使用,先来看详细内容,

iPhone开发应用中NSOperation多线程使用是本文要介绍的内容,首先创建一个线程类,RequestOperation,它继承NSOperation,而后我们在控制器类当中,创建一个NSOperationQueue对象,将该线成加入到序列中。它就会自动的从NSOperationQueue当中取到我们加入的线程,而后运行线成的start方法。

#import "RootViewController.h"  
@implementation RootViewController  
#pragma mark -  
#pragma mark View lifecycle  
-(void)buttonClicked:(id)sender{  
 _queue=[[NSOperationQueue alloc] init];  
 //第一个请求  
 NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http:www.google.com"]];  
 RequestOperation *operation=[[RequestOperation alloc] initWithRequest:request];  
 [_queue addOperation:operation];  
 [operation release];  
 //第二个请求  
 //NSURLRequest *request2=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http:www.baidu.com"]];  
 //RequestOperation *operation1=[[RequestOperation alloc]initWithRequest:request2];  
//operation1.message=@"operation1---";  
//[_queue addOperation:operation1];  
}  
#import <Foundation/Foundation.h> 
@interface RequestOperation : NSOperation{  
 NSURLRequest *_request;  
 NSMutableData *_data;  
 NSString *message;  
}  
@property(nonatomic,retain)NSString *message;  
-(id)initWithRequest:(NSURLRequest*)request;  
@end  
   
//  
//  RequestOperation.m  
//  NSOperation  
//  
//  Created by wangqiulei on 8/23/10.  
//  Copyright 2010 __MyCompanyName__. All rights reserved.  
//  
#import "RequestOperation.h"  
@implementation RequestOperation  
@synthesize message;  
-(id)initWithRequest:(NSURLRequest *)request{  
   
 if (self=[self init]) {  
 _request=[request retain];  
 _data=[[NSMutableData data]retain];  
 }  
 return self;  
}  
-(void)dealloc{  
 [_request release];  
 [_data release];  
 [super dealloc];  
}  
//如果返回为YES表示asychronously方式处理  
-(BOOL)isConcurrent{  
   
 return YES;  
}  
//开始处理  
-(void)start{  
 if (![self isCancelled]) {  
   
 NSLog(@"%@",self.message);  
 NSLog(@"-------------%d",[self retainCount]);  
 [NSURLConnection connectionWithRequest:_request delegate:self];  
 }  
}  
//取得数据  
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{  
 //添加数据  
 [_data appendData:data];  
 NSLog(@"%@",_data);  
}  
//http请求结束  
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{  
}  
@end 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.

小结:iPhone开发应用中NSOperation多线程使用的内容介绍完了,希望通过本文的学习对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-18 13:58:34

iPhone开发NSOperation异步

2011-08-01 12:53:25

iPhone 多线程 线程

2011-08-10 10:18:22

iPhone多线程线程

2011-08-12 10:09:23

iPhone开发多线程

2011-06-02 17:27:49

iphone 多线程

2011-07-21 11:12:58

iPhone 线程 多线程

2013-08-21 16:17:09

iPhone多线程

2011-07-08 16:43:46

iPhone Cocoa 多线程

2011-08-17 15:10:21

iPhone开发Web视图

2011-08-08 14:07:49

iPhone开发 字体

2011-06-07 17:35:39

iphone 多线程

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-09 11:36:41

iPhoneUIPickerVieDEMO

2011-08-09 14:24:18

iPhone多线程线程

2011-08-22 14:12:48

iPhone开发NSTableView

2011-08-15 11:37:20

iPhone开发Mask

2011-07-21 15:20:31

iPhone SDK 多线程

2011-08-18 16:24:44

iPhone开发图片

2011-08-12 14:33:06

iPhone缓存文件

2011-08-15 15:44:46

iPhone开发PDF
点赞
收藏

51CTO技术栈公众号