2010-01-15 62 views
1

HI, 我使用的示例代码从来自链路multiple url connectionNSURLConnection问题?

处理多个NSURLConnection的inwhich我所指定的一个的方法,以使

CustomURLConnection *connection = [[CustomURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES tag:tag]; 

通过以下

当我使用CustomURLConnection作为NSObject的
- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString *)_tag 

{ 
connection = [[NSURLConnection alloc] initWithRequest:request delegate:delegate startImmediately:startImmediately]; 
self.tag = _tag; 
return self; 
    } 

它给出错误?

+0

这是什么错误?! – 2010-01-15 08:49:05

回答

1

我想你应该尝试:

- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString *)_tag 
{ 
    if(self = [super initWithRequest:request delegate:delegate]) 
    { 
     self.tag = _tag; 
    } 
    return self; 
    } 

(如果我得到你的权利和CustomURLConnection扩展NSURLConnection的,你贴的代码是CustomURLConnection的初始化代码。)

+0

senthilmuthu,看到原始实施在这里:http://blog.emmerinc.be/index.php/2009/03/02/custom-nsurlconnection-class-with-tag/ – Costique 2010-01-15 09:20:43

+0

看来,在他的情况下CustomURLConnection继承自NSObject而不是NSURLConnection。 – FelixLam 2010-01-15 09:32:29

+0

是的,在他的描述中错过了这个。所以我认为你的回答是对的。 – 2010-01-15 09:49:55

2

的问题是,有没有self 。如果从NSObjectCustomURLConnection继承方法应该是这样的:

- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString *)_tag { 
     if(self = [super init]) { 
     self.connection = [[[NSURLConnection alloc] initWithRequest:request delegate:delegate startImmediately:startImmediately] autorelease]; 
     self.tag = _tag; 
     } 
     return self; 
} 

你也应该确保connection是类伊娃和dealloc得到正确释放。同为tag确保@implementation后添加

@synthesize tag,connection; 

,并申报了Ivar标签和属性。

+0

我编辑了代码。确保合成标签和连接。 – FelixLam 2010-01-15 10:31:41