【问题标题】:Scope of object referenced as a delegate作为委托引用的对象范围
【发布时间】:2016-04-03 10:01:56
【问题描述】:

我需要确认一下。

我有这样的代码

@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??

【问题讨论】:

    标签: ios delegates nsurlconnection


    【解决方案1】:

    如果你使用 ARC,那么我想它会的。

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

    然后,您在 B 中实现另一个对 A 的引用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      相关资源
      最近更新 更多