-1

我正在尝试在表格视图中显示数据库信息,然后在视图中显示详细信息我的问题如下:

我创建了一个NSMutableArrayNSMutableArray *myArray = [[NSMutableArray alloc]init]; 然后我从数据库中填充它MyObj *obj = [[MyObj alloc]initWithName:idObj];

当我在 tableviewcellForRowAtIndexPath:方法中显示值时,一切正常,但是当我尝试在didSelectRowAtIndexPath:方法中加载相同的数组时,数组中的值是“无效的”。

NSMutableArray声明如下:

@property (nonatomic, retain) NSMutableArray *myArray;

这是代码:

.h 文件

NSMutableArray *antrosArray; 

@property(nonatomic, retain) NSMutableArray *antrosArray; 

.m 文件

@synthesize antrosArray; 

//filling the array: 

Antro *antro = [[Antro alloc]initWithName:idAntro nombre:aName]; 
[self.antrosArray addObject:antro];

我的问题是:

当我从cellForRowAtIndexPath:tableView 方法访问数组时,一切正常,但是当用户选择一条记录时,我试图读取didSelectRowAtIndexPath:方法中的数组并且我的数组中的所有值都无效。

数组在那里,对象也在那里,但是对象的值是空的,cellForRowAtIndexPath:方法是清理数组。

4

2 回答 2

3

您似乎正在定义第二个名为 myArray 的局部变量。你应该做的是

self.myArray = [[[NSMutableArray alloc] init] autorelease];

事实上,您可能也应该使用 -initWithCapacity: ,但这是另一回事。

编辑:感谢查克指出我丢失的自动释放 :)

于 2009-11-09T17:59:43.990 回答
0

retain在定义期间也可以使用。

于 2012-08-04T20:22:10.670 回答