2012-12-06 152 views
0

當我遇到這個問題時,有什麼方法可以理解我的20個陣列是空的嗎?查找空陣列

2012-12-06 16:52:05.409 Posizione Corrente 3[3738:907] *** Terminating app due to uncaught  exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array' 
*** First throw call stack: 
(0x383042a3 0x34adb97f 0x3824fb75 0x560ab 0x38a49545 0x38a2e30b 0x38a457c7 0x38a01803 0x3bed7d63 0x3bed7901 0x3bed8835 0x3bed821b 0x3bed8029 0x3bed7e89 0x382d96cd 0x382d79c1 0x382d7d17 0x3824aebd 0x3824ad49 0x340232eb 0x38a522f9 0x7c675 0x3940bb20) 
libc++abi.dylib: terminate called throwing an exception 
(lldb) 

回答

1

如果設置使用Xcode的斷點導航Objective-C的異常斷點,程序應該在遇到錯誤停止並告訴你,導致它的代碼。從代碼行中,應該很容易看出哪個數組有牽連。

+0

所以沒有辦法直接找到這個數組? – user1639377

+1

我想你可以寫一個像 - (id)objectFromValidArray:(NSArray *)數組atIndex:(NSUInteger)offset;'這將檢查數組的有效性,每次調用它,而不是'objectAtIndex:'但它看起來像與修復bug相比,付出了很多努力。 –

0

如果您的數組包含任何值,您可以檢查以下代碼。

if([myArray count]==0){ 
    //do this 
} 
else{ 
    //do you array manipulation 
} 
+0

是的,但我無法檢查每一個陣列!我有更多的20個陣列。無論如何,謝謝 – user1639377

+0

或者你可以繼承或編寫一個類別,爲你的每一堂課發送通知......。這可以是POC。我不確定...這就是爲什麼我寫在這裏不是在我的答案。 –