2016-04-03 36 views
0

我需要確認這一點。引用爲代表的對象範圍

我有這樣的代碼

@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的傳遞?

回答

0

如果你使用ARC,那麼我想它會。

A只有在連接結束時纔可以釋放,因爲持有引用的連接是非常連接的。

然後,您繼續參考A並在B中執行。

因此,如果anObjectsomeFn()的某個時間未使用,並且內部參考需要保持活動狀態,則它將有效,直到它沒有內部參考。