从AppDelegate传递NSMutableArray

时间:2012-04-02 21:42:22

标签: nsmutablearray

我可以处理:

myArray = [[NSMutableArray alloc] init];
[myArray addObject:@"some1"];
[myArray addObject:@"some2"]; 

我设法将一个基本的NSMutableArray从AppDelegate.m转移到'anotherClass'.m,我在tableView中使用它,但现在我需要更进一步=)

如果我的数组看起来像这样

mySecoundArray =[NSMutableArray arrayWithObects: sak1,sak2,nil];

其中

BombDoc *sak1 = [[BombDoc alloc] initWithTitle@"Title1" weight:10 otherField:@"Special" ];

正如我上面提到的,我想在我的tableView中使用mySecoundArray,问题是我不知道如何挑选出sak1:s的第一个信息,标题,所以我可以将它用作TableCell的名称

如果那里的任何人都可以给我一个提示,更好的,明确的代码行,我会很高兴。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您的问题是您不知道如何访问数组中项目的数据成员(属性)?

您可以通过投射将数组中的对象转换为正确的类型:

BombDoc *sak1 = (BombDoc*)[mySecoundArray objectAtIndex:0];
// Now we can access sak1's information
NSString *title = [sak1 title];
NSInteger weight = [sak1 weight];
// Etc.

希望这能回答你的问题。

最好的问候,老鼠

修改

mySecoundArray传递给表格视图后,您可能还会遇到一个空数组。

如您所见,您正在使用 2 不同方式初始化NSMutableArray

// Returns an instance of NSMutableArray
myArray = [[NSMutableArray alloc] init];
// Returns an auto-released instance of NSMutableArray
mySecoundArray = [NSMutableArray arrayWithObjects:sak1,sak2,nil];

您可能希望获得非自动发布的实例:

mySecoundArray = [[NSMutableArray alloc] initWithObjects:sak1,sak2,nil];

您必须记住,使用此方法需要您手动释放mySecoundArray