作者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)