Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode touchJSON提供NSInvalidException NSNull isEqualtoString:_Xcode_Json_Touchjson_Nsnull - Fatal编程技术网

Xcode touchJSON提供NSInvalidException NSNull isEqualtoString:

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:]:

你好,我是可可发展的新手,我正在努力找出我做错了什么。我遵循了一个()命令,它使用touchJSON在Xcode中用mySQL数据库填充tableView。当我运行应用程序时,一切正常,但当我向下滚动tableView时,我得到一个
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;