2011-06-10 54 views
0
aryDesc = [[NSMutableArray alloc]init]; 
    NSMutableArray *ary_Temp ; 
ary_Temp = [[NSMutableArray alloc]init ]; 
[ary_Temp addObject:@"Collins Burns"]; 
[ary_Temp addObject:@"cburns"]; 
[ary_Temp addObject:@"Active"]; 


    [aryDescListing addObject:ary_Temp]; 
[ary_Temp removeAllObjects]; 


[ary_Temp addObject:@"Collins Burns"]; 
[ary_Temp addObject:@"cburns"]; 
[ary_Temp addObject:@"Active"]; 


[aryDescListing addObject:ary_Temp]; 
    [ary_Temp removeAllObjects]; 

    NSLog(@"ary Description===== >>>%@",aryDescListing); 

我的代碼中使用刪除allobjects如上我得到的日誌兩個對象,但都是空的,我不知道wheather使用刪除所有對象,或者爲dealloc的。應該ary_Temp我使用removeAllobjects或頁頭它每次在我添加到aryDescListing後。問題時的NSMutableArray

感謝

+0

removeAllObjects不釋放數組本身,NSLog(@「%@」,ary_Temp)在removeAllobject之前和之後都正常工作。 – Aravindhan 2011-06-10 06:29:42

+0

我已經執行了您的代碼。但是我得到的輸出如下所示ary說明== === >>>( ( 「柯林斯燒傷」, cburns, 主動 ) ( 「柯林斯燒傷」, cburns, 主動 ) ) – Tendulkar 2011-06-10 06:31:36

+0

除去allobjects意味着只刪除對象,該不釋放對象。如果你想釋放對象意味着使用你想要的釋放。 – Tendulkar 2011-06-10 06:33:42

回答

1

不要使用dealloc,改用releasedealloc將取消分配對象而不計入它的保留計數,它會遲早會破壞您的應用程序。

也許你想要這個? :

aryDesc = [[NSMutableArray alloc] init]; 
NSMutableArray *ary_Temp ; 

ary_Temp = [[NSMutableArray alloc] init]; 
[ary_Temp addObject:@"Collins Burns"]; 
[ary_Temp addObject:@"cburns"]; 
[ary_Temp addObject:@"Active"]; 
[aryDescListing addObject:ary_Temp]; 
[ary_Temp release]; 

ary_Temp = [[NSMutableArray alloc] init]; 
[ary_Temp addObject:@"Collins Burns"]; 
[ary_Temp addObject:@"cburns"]; 
[ary_Temp addObject:@"Active"]; 
[aryDescListing addObject:ary_Temp]; 
[ary_Temp release]; 

NSLog(@"ary Description===== >>>%@",aryDescListing); 

順便說一句:removeAllObject將從陣列刪除對象(並且將降低它們的retainCount由一個),但不將釋放陣列。

+0

從編程的角度來說,多次分配和釋放數組稱爲至少hunderads的時間確實不錯。感謝您的輸入,是否有其他方式來做到這一點。 – mrugen 2011-06-10 06:39:02

+0

你到底想要做什麼?有6個對象的數組?一個數組的數組?只有兩個數組的數組?這個答案是一個猜測,因爲我認爲你的想法在我看來並不明確。 – nacho4d 2011-06-10 23:30:17

+0

@mugen你的問題聽起來像不成熟的優化。除非你有特定的,量化的性能問題,否則你不應該擔心。 – bbum 2011-06-11 04:58:14