Xcode touchJSON提供NSInvalidException NSNull isEqualtoString:
你好,我是可可发展的新手,我正在努力找出我做错了什么。我遵循了一个()命令,它使用touchJSON在Xcode中用mySQL数据库填充tableView。当我运行应用程序时,一切正常,但当我向下滚动tableView时,我得到一个Xcode touchJSON提供NSInvalidException NSNull isEqualtoString:,xcode,json,touchjson,nsnull,Xcode,Json,Touchjson,Nsnull,你好,我是可可发展的新手,我正在努力找出我做错了什么。我遵循了一个()命令,它使用touchJSON在Xcode中用mySQL数据库填充tableView。当我运行应用程序时,一切正常,但当我向下滚动tableView时,我得到一个NSInvalidExeption错误: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull isEqualToString:]:
NSInvalidExeption
错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[NSNull isEqualToString:]: unrecognized selector sent to
instance 0x1469cd8'
我真的不知道这是否与php代码(和数据库)或Xcode中的代码有关
这是我的php代码:
<?php
$link = mysql_pconnect("localhost", "root", "root") or die("Could not connect");
mysql_select_db("PartyON") or die("Could not select database");
$arr = array();
$rs = mysql_query("SELECT id, Maand, Naam, Locatie, Plaats FROM tblWebData");
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
echo '{"tblWebData":'.json_encode($arr).'}';
?>
正如我已经说过的,我是新手,所以任何帮助都是非常欢迎的!几天来,我一直在试图解决这个问题,但似乎找不到准确的答案或解决方案
非常感谢您事先的努力 我猜数据库中的一个对象是数据库中的
NULL
,在JSON中被正确翻译成NULL
,在TouchJSON中被正确翻译成NSNull
。然后从字典中取出它,并将其设置为UILabel
的文本
您应该在tableView:cellforrowatinexpath:
中添加检查,以检查对象实际上是NSString
s。可能是这样的:
id Naam = [dict objectForKey:@"Naam"];
if ([Naam isKindOfClass:[NSString class]]) {
cell.Naam.text = Naam;
} else {
cell.Naam.text = @"";
}
另外,为什么每次表视图请求单元格时都要对行进行排序?当您获得数据时,您可能只需要对它们进行一次排序-即在您的案例中的viewDidLoad
。您也可以使用以下方法:
id Naam = [dict objectForKey:@"Naam"];
if ([Naam isKindOfClass:[NSString class]]) {
cell.Naam.text = Naam;
} else {
cell.Naam.text = @"";
}
- (id)verifiedObjectForKey:(id)aKey;