2011-06-13 54 views

回答

1

保留所有Objective-C對象。其他一切都是簡單的複製。例如,這裏有三個變量:

NSArray* array = [NSArray array]; 
int i = 0; 
int* ptr = malloc(sizeof(int)); 

所有這三個變量可以從塊讀取裏面。但是,只有array將被保留,因爲它是唯一可以調用retain方法的變量。

應該特別注意確保ptr指向的位置在塊被執行時仍然存在,因爲它是一個無法保留的指針。

+0

如果我有'int i'和'int * i',兩者都會保留嗎?我如何區分Obj-C和非Obj-C對象? – Pablo 2011-06-13 01:23:44

+0

@Michael,Objective-C對象是可以調用Objective-C方法的值。例如,如果你有一個名爲'foo'的'NSString',你可以調用'[foo retain]'。如果你不能這樣做,它不是一個Objective-C對象。我編輯了我的答案。 – zneak 2011-06-13 01:30:44

+0

優秀的答案!謝謝!!! – Pablo 2011-06-13 01:33:05

相關問題