gpt4 book ai didi

objective-c - Objective-C 中的指针和数据分配

转载 作者:行者123 更新时间:2023-11-29 11:22:42 26 4
gpt4 key购买 nike

我在处理 Objective-C 中的指针时遇到了麻烦。基本上,我的类(class)有以下结构:

UITableView *list;
NSArray *objArray;
UIPickerView *pickerCtrl;

我的“列表”显示了 objArray 中包含的数据,它是一个临时结构,链接到各种类型的自定义 NSObject(未存储在我当前的对象中)。

选择列表中的一个元素会显示“pickerCtrl”,根据当前选择的 TableView 行显示适当的数据。

我的目标是用 newObject 的数据(在 PickerView 中选择)替换 oldObject 的数据(外部对象,由 objArray 访问)。像这样:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
id oldObject = [objArray objectAtIndex:[[list indexPathForSelectedRow] row]];
id newObject = [pickerData objectAtIndex:row];

*oldObject = *newObject;
}

从调试器来看,oldObject 和 newObject 都有正确的内存地址。问题是,似乎没有完成任何分配,旧数据永远不会被“newObject”中的数据替换。

我在这里错过了什么?

最佳答案

这不是处理可变数组的正确方法,您的想法太低级了。

相反,试试这个:

[objArray removeObject:oldObject];
[objArray addObject:newObjec];

您还可以使用 insertObject:atIndex: 方法。有关详细信息,请参阅 NSMutableArray 的引用资料

关于objective-c - Objective-C 中的指针和数据分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122751/

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