作者joojooman (joogumo)
看板MacDev
標題[問題] 關於NSArray null問題
時間Wed Apr 17 14:05:39 2013
小弟想判斷如果ProcessArray不等於null就執行 [self ProcessJSONDateFormat]
但是寫成這樣就出現Crash in Main thread
Log:
ProcessArray:()
ProcessArray == 0
-[NSNull length]: unrecognized selector sent to instance 0x3c4e1090
我的程式碼如下:
ProcessArray = [EventSheetDetailArray valueForKey:@"Process"];
NSLog(@"ProcessArray:%@",ProcessArray);
if (ProcessArray.count > 0 ) {
NSLog(@"ProcessArray != 0");
[self ProcessJSONDateFormat];
}else{
NSLog(@"ProcessArray == 0");
}
請問前輩有什麼方法可以避免這樣的錯誤呢??謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.104.78
1F:推 kiii210:[NSNull null] 04/17 14:08
2F:→ joojooman:小弟有使用[NSNull null]方式還是會有那個問題 04/17 15:08
5F:→ yuanruo:ProcessArray 是空的還是nil ? 空的才能用[NSNULL null] 04/17 15:28
6F:推 wasihero:if([ProcessArray isKindOfClass:[NSNull class]]) 04/17 15:32
7F:→ joojooman:Log 顯示為ProcessArray:() 04/17 16:09
8F:→ joojooman:To wasihero:謝謝前輩我試過你的方式 還是無法正確判斷! 04/17 17:39
9F:→ joojooman:不過不會出現-[NSNull length]錯誤! 04/17 17:41
試著改成wasihero前輩說的那樣,ProcessArray不管有無值都會跑else那部分
ProcessArray = [EventSheetDetailArray valueForKey:@"Process"];
if([ProcessArray isKindOfClass:[NSNull class]])
{
NSLog(@"ProcessArray-1");
}else{
NSLog(@"ProcessArray-2");
}
※ 編輯: joojooman 來自: 111.243.104.78 (04/17 17:50)
10F:推 kiii210:NSLog(@"ProcessArray:%@",ProcessArray);出現什麼? 04/17 17:55
回 kiii210:Log 是 ProcessArray:()
11F:→ kiii210:之前好像有遇過類似問題 04/17 17:55
12F:推 tentenlee:真的是這串的錯嗎?? 04/17 19:27
13F:推 kokuyoku:Log出現ProcessArray == 0後才跳出-[NSNull length]錯誤 04/17 23:15
14F:→ kokuyoku:所以應該是在NSLog(@"ProcessArray == 0");之後某個class 04/17 23:16
15F:→ kokuyoku:或id有調用length方法時的地方 04/17 23:16
抱歉!小弟出現[NSNull length]錯誤是因為其他code的原因!
ProcessArray = [EventSheetDetailArray valueForKey:@"Process"];
NSLog(@"ProcessArray:%@",ProcessArray);
if (ProcessArray.count > 0 ) {
NSLog(@"ProcessArray != 0");
[self ProcessJSONDateFormat];
}else{
NSLog(@"ProcessArray == 0");
}
以上這樣寫法沒錯~感謝各位的幫忙!
※ 編輯: joojooman 來自: 111.243.102.45 (04/18 13:31)