Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Iphone UITableView崩溃阵列问题帮助_Iphone_Objective C_Uitableview_Nsarray - Fatal编程技术网

Iphone UITableView崩溃阵列问题帮助

Iphone UITableView崩溃阵列问题帮助,iphone,objective-c,uitableview,nsarray,Iphone,Objective C,Uitableview,Nsarray,我有一个UITableView,我试图使用[arrayName count]返回行数,但是当我运行应用程序时,它似乎崩溃了,控制台中没有显示错误。下面是一些代码。。(另外,当我使用NSLog在ViewDidLoad中测试数组时,它确实返回“16”,因此我不知道为什么在我进行行计数时它会崩溃。谢谢..您不需要释放htmldata,因为它已经自动释放。删除[htmldata release];行,它应该可以工作 此外,您永远不会在[super dealoc]行之后释放对象。将该行[elements

我有一个UITableView,我试图使用[arrayName count]返回行数,但是当我运行应用程序时,它似乎崩溃了,控制台中没有显示错误。下面是一些代码。。(另外,当我使用NSLog在ViewDidLoad中测试数组时,它确实返回“16”,因此我不知道为什么在我进行行计数时它会崩溃。谢谢..

您不需要释放htmldata,因为它已经自动释放。删除
[htmldata release];
行,它应该可以工作


此外,您永远不会在
[super dealoc]
行之后释放对象。将该行
[elements release];
放在超级dealoc之前。

您不在元素上执行保留操作,并且在分配它时,您直接将其分配给属性,而不通过setter

尝试:


另外,别忘了用dealoc方法释放它。

我认为问题出在这一行:

elements  = [xpathParser search:@"//div[starts-with(@id,'content_div')]//a"];
我猜
-search
方法会返回一个自动释放的对象,这样您的
元素
对象就会在方法
viewdiload
返回后收到释放消息,从而被释放

您可以通过两种方式解决此问题:

  • 添加一个
    retain
    调用,如下所示

    elements=[[xpathParser search:@//div[以(@id,'content\u div')][/a“]retain]开头];

  • 使用属性,如下所示

    self.elements=[xpathParser search:@//div[以(@id,'content\u div')]//a开头];

elements  = [xpathParser search:@"//div[starts-with(@id,'content_div')]//a"];