NSMutablearray,不保留添加的对象

时间:2011-08-02 14:44:20

标签: iphone objective-c nsmutablearray

我有一个名为txtvwEmail的UITextField。我正在将txtvwEmail.text中的文本添加到数组pastUrls,但在添加下一个文本后,它会删除第一个文本。我正在使用代码

if (![pastUrls containsObject:txtvwEmail.text]) {
    [pastUrls addObject:txtvwEmail.text];
}

2 个答案:

答案 0 :(得分:2)

您应该依赖语言和框架的基础知识。数组DOES RETAIN对象,但它可能是:

  1. pastUrls是nil - >不保留
  2. 代码中的某个地方.text被释放(或自动释放)和 数量是一样的
  3. 此外,您无法确定[obj retainCount]是否返回正确的值。要诊断真正的问题,请修改代码或在此处发布,以便我们提供帮助。

答案 1 :(得分:1)

//this should be outside of ur all loops
NSMutableArray *pastUrls=[[NSMutableArray alloc]init];

//remove this line
//NSMutableArray *pastUrls=[NSMutableArray array];

if (![pastUrls containsObject:txtvwEmail.text]) {
    [pastUrls addObject:txtvwEmail.text];
}

NSLog(@"pastUrls : %@ \n\n",pastUrls);