2010-11-20 14 views
0

INSMUrableArray alloc ve .....

NSMutableArray *aArray; 

a2, aşağıdaki kodları kullanılır ve a1 de kesme noktası ayarlamak init

@property (nonatomic,retain) NSMutableArray *aArray; 

......

NSMutableArray* a=[[NSMutableArray alloc]init] ; 


for(int i=1;i<=31;i++) 
    [a addObject:[NSNumber numberWithInt:i]]; 
aArray=a; 


[a release];// a1 

int i=0;// a2 

aArray öğesindeki nesnelerin miktarı 31 , ancak satırı [a release] olarak afeter, miktar 0

olarak değişir.

'Release' olduğunu bildiğim gibi, yalnızca karşı sayacı -1 yap, ancak neden aynı zamanda MutableArray içindeki tüm nesneleri kaldırır? Herhangi bir yorumun Welcone

Teşekkür

ınterdev [a release] ile

cevap

0

aşağıdaki ifadeyi kullanır;

aArray = [a hold];

Korumayı kullanırsanız, birArray değişmez.

1

, dizi için başvuru sayısı 0 olur ve bu nedenle, dizi bırakılmaktadır. Bu olduğunda, dizi onları serbest bırakmak için içeriğindeki tüm nesneleri kaldırır (çünkü diziye eklendikten önce bunları korur).

İlgili konular