作为委托引用的对象的范围

时间:2016-04-03 10:01:56

标签: ios delegates nsurlconnection

我需要确认一下。

我有这样的代码

@implementation A
    (void) read
    {
        NSURLConnection *conn = 
           [[NSURLConnection alloc] initWithRequest:request delegate:self];

        ...    
    }
@end

@implementation B
   (void) someFn() 
   {
      A anObject = [A alloc] init]
      [anObject read]
   }

@end

anObject作为有效对象,直到连接完成,因为它作为委托传递给NSURLConnection?

1 个答案:

答案 0 :(得分:0)

如果您使用ARC,那么我认为它会。

A只有在连接结束时才可释放,因为持有引用的是连接。

然后,您在A中执行了对B的另一个引用。

因此,如果在anObject中某个时间未使用someFn()并且内部引用需要保持活动状态,那么它将无效,直到它没有内部引用。