gpt4 book ai didi

ios - removeAllObjects 崩溃应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:24 30 4
gpt4 key购买 nike

我想清除我的数组,我所做的是,

我的应用程序中有 tableview View ,首先我从服务器获取数据并将其加载到 tableView 中。

-(void)viewDidLoad{

//fetching data from server using background thread and storing it in array called (msg_array)
[table reloadData];

}

当最后一行出现在屏幕上时,我想从服务器获取新数据并显示它,

-(void)LoadMoreData{ //this method gets fire when last cell is on screen 

if ([msg_array count]>0)
{
[msg_array removeAllObjects]; //crashes here
}

}

这给出了错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[__NSArrayI removeAllObjects]: unrecognized selector sent to instance

为什么会导致崩溃:

数组是这样分配的:

msg_array = [dictShow copy];

dictshow 包含数据并将其复制到 msg_array 并且 dictshow 是 mutabledictionary

(摘自comments)

最佳答案

'-[__NSArrayI removeAllObjects]: unrecognized selector sent to instance

这意味着该数组没有您尝试调用的方法。那是因为它是一个不可变数组(NSArray),而不是可变数组(NSMutableArray)。

如果你想改变它,要么让它可变。或者,替换:

[msg_array removeAllObjects];

与:

msg_array = @[];

根据您的评论,数组应该是可变的。这意味着你有一个可变的属性/实例变量,但你正在创建一个不可变的实例来存储它。找到那个位置并更新它(至少创建/返回一个 mutableCopy)。

关于ios - removeAllObjects 崩溃应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853908/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com