2010-05-06 29 views
2

如果有可能NSArray爲空,檢查它是否更好,如果分配時爲空,或者在使用時檢查爲空,則設置爲等於nil?NSArray保護

例如

NSArray *myArray; 

if ([anotherArray count] > 0)  <-- Check when assigned 
    myArray = [anotherArray copy]; 
else 
    myArray = nil; 

something = [myArray objectAtIndex:x]; 

NSArray *myArray; 

myArray = [anotherArray copy]; 

if ([myArray count] > 0)   <-- Check when used 
    something = [myArray objectAtIndex:x]; 

哪個更好?

+0

對於任何其他變量,NSArray只是首先想到的東西。 – 2010-05-06 10:44:17

+0

爲什麼你把它設置爲零,如果它是空的? – 2010-05-06 10:53:31

回答

3

你應該只檢查是否數組爲空,在必要的時候。

不要將其設置爲nil,這可能會導致其他問題。例如,如果您嘗試將nil數組添加到NSArray,NSDictionary或其他集合類中,運行時將引發異常。

+0

我認爲設置爲零是安全的事情嗎?!?我會記住你所說的,謝謝。 – 2010-05-10 08:48:43

0

我認爲這是編程風格的問題,而不是任何事情。

我猜你擔心應該陣列所傳遞的不必要分配內存爲空

+0

確切的說,除了不想意外地訪問一個空數組,我也不希望佔用空間的無用變量。 – 2010-05-10 08:47:10