首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖NSObject数据

覆盖NSObject数据
EN

Stack Overflow用户
提问于 2012-05-02 11:58:49
回答 3查看 128关注 0票数 0

我有一个数组,这个数组包含问题对象,所以这里我需要更改数组的位置

代码语言:javascript
复制
Question *que=[[Question alloc]init];

que=[myarray objectAtIndex:1];

Question *que1=[[Question alloc]init];
que1=[myarray objectAtIndex:2];

here i need to inter change objects each other some 

[que1 setValue: que.name forKey:@"Name"];

[myarray relplaceObjectAtIndex:2 withObject:que1];

将值设置为相同的objectValues是否正确

请指导我如何交换价值。

感谢你的预支

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-02 12:24:40

你的代码在这里有很大的问题:

  1. 这条语句:

que *que =[问题分配初始];

分配一个新的Question实例并将其赋值给变量que。当你这样做的时候:

que = myarray objectAtIndex:1;

您正在覆盖刚刚分配的Question实例,从而有效地泄漏了内存(因为您从未释放过它)。如果你正在使用ARC,这不会是一个问题,但无论如何,这是需要注意的事情,因为不管有没有ARC,这都是没有意义的。您这样做了两次,一次是针对que,另一次是针对que1。因为你实际上不需要分配和初始化一个新的Question实例,所以你可以这样做:

objectAtIndex:1;

  • You *que = myarray获取对Question对象的引用并将其赋值给que1。然后对其进行变异,并将其放回数组中。这是没有意义的,因为数组中已经包含了对使用objectAtIndex:获得的同一个Question实例的引用。

  • ,你还没有真正解释你想要做什么。你的整个代码基本上归结为:

[[myarray对象属性索引:2名称:[myarray对象属性索引:1名称] forKey:@"Name"];

票数 1
EN

Stack Overflow用户

发布于 2012-05-02 12:08:49

你的代码应该按照你想要的方式工作。只有几点需要注意:

索引的起始位置有一个拼写错误:NSMutableArray

  • You it I replaceObjectAtIndex

  • Arrays
  1. at myarray 0,我相信你应该知道这一点。relplaceObjectAtIndex:2
票数 0
EN

Stack Overflow用户

发布于 2012-05-02 12:14:24

首先使用NSMutableArray对象来保存它,而不是NSArray

然后。

你需要明白一件主要的事情,你只需要持有一个指向对象的指针。阵列正在管理它。在访问数组内的对象之前,您已经创建了一个对象,请不要这样做,否则会造成内存泄漏。您只能从数组访问对象。

代码语言:javascript
复制
Question * que1=[myarray objectAtIndex:1];
[que1 retain];
[myarray removeObjectAtIndex:1];

Question * que2=[myarray objectAtIndex:2];
[que2 retain];
[myarray removeObjectAtIndex:2];

您可能没有使用ARC,并且您的数组是该对象的唯一所有者。因此,如果从数组中移除对象,可能会释放整个对象

代码语言:javascript
复制
[myarray insertObject:que2 atIndex:1];
[myarray insertObject:que1 atIndex:2];

这是一个将对象放在任何位置的示例。读取类引用NSMutableArray

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10407512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档