NSArray中的对象超出范围

时间:2011-09-23 07:55:44

标签: iphone objective-c memory-management

我有一个函数填充数组然后返回它。但是在调用函数中,数组不在范围之外,但是其中的所有对象都超出了范围。

(NSMutableArray *)createObjectWith:(NSString *)result 
{
   NSMutableArray *array =[NSMutableArray array];
   for (int i=0 i<20;i++){

   Wp *newWp =[[Wp alloc]init] ;
   newWp.name= @"a";
   [array addObject:newWp];
 }
 return array;
}

调用函数:

data =[self createObjectWith:stringResult];

2 个答案:

答案 0 :(得分:0)

[NSMutableArray array] 

返回一个自动释放的数组..如果你想使用那个数组,最好保留它。

data =[[self createObjectWith:stringResult] retain];

此外,您必须在添加到数组

后释放Wp对象
   Wp *newWp =[[Wp alloc]init] ;
   newWp.name= @"a";
   [array addObject:newWp];
   [newWp release];  

btw你在做什么变量结果?

答案 1 :(得分:0)

最后用调试器知道了它的概率。里面的对象不在范围之外。但调试人员这么说。