Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 NSMutableArray存在奇怪的问题-可能是内存损坏_Iphone - Fatal编程技术网

Iphone NSMutableArray存在奇怪的问题-可能是内存损坏

Iphone NSMutableArray存在奇怪的问题-可能是内存损坏,iphone,Iphone,我正在尝试使用NSMutableArray更新表视图中的数据。很简单:( 发生的情况是,我从NSURLConnection回调中获取数据,我将其解析并存储在数组中,并在表视图上调用reload data。问题是,当框架回调CellForRowatinedExath时,数组仍然显示正确的元素计数,但我先前存储的所有字符串对象都显示为Invalid 任何指针都会检查您是否在NSURLConnection回调中保留NSString对象。是否自动恢复它们 编辑 好的,忘记最后一件事。我自己仔细检查一下,

我正在尝试使用NSMutableArray更新表视图中的数据。很简单:(

发生的情况是,我从NSURLConnection回调中获取数据,我将其解析并存储在数组中,并在表视图上调用reload data。问题是,当框架回调CellForRowatinedExath时,数组仍然显示正确的元素计数,但我先前存储的所有字符串对象都显示为Invalid

任何指针都会检查您是否在NSURLConnection回调中保留NSString对象。是否自动恢复它们

编辑

好的,忘记最后一件事。我自己仔细检查一下,当您将对象添加到数组中时,NSMutableArray将自动保留这些对象。因此您不需要显式保留它们:

像NSArray一样 NSMutableArray保持强大的 对其内容的引用。如果 当需要时,不要使用垃圾收集 将对象添加到数组中时 对象接收保留消息。当 从可变对象中删除对象 数组,它接收一条释放消息


因此,您需要检查是否正在对要添加到数组中的对象执行任何其他显式释放。它们是否在其他地方引用?

问题在于将字符串对象添加到可变数组的位置。字符串对象当时已经无效。这就是为什么当您从数组中访问它们时,它们是您无效或不存在


因此,最好的办法是检查在解析过程中添加字符串对象的代码。

您的问题可能是没有正确启动数组

是否将数组用作类的属性


请确保在加载分配的视图时启动阵列。

可能您的问题如下所示

NSString *value = [NSString stringWithFormat:@"%@",stringFromWebService];
[arrayOfObjects addObject:value];
[value release]; // This should not be released
这可能不准确,但可能类似。这里的值是从NSString的类方法中获得的,NSString是一个自动释放的对象,所以如果您看到它,它将被释放两次,一次由自动释放,另一次由您释放


这是您需要检查的区域。

发布一些代码。您是否保留了数组?您在数组中存储了什么类型的对象?如果它是您自己的类,该类是否正确地保留了您放入其中的内容?是的,您需要发布一些代码,因为它可能是许多内容。