如何在objective-c中初始化数组

时间:2011-06-22 13:33:42

标签: objective-c

非常基本的问题:)

我必须在objective-c中初始化一个数组。我将在表视图中进一步使用该数组值。我有一个章节列表,我把它写成硬编码如下。

    NSArray *tableList;

tableList = [[NSArray alloc]initWithObjects:@"Chapter 1",@"Chapter 2",@"Chapter 3",@"Chapter 4",@"Chapter 5",nil];

但是现在我有一个索引数组,它保留了章节细节。下面是保持值的数组代码。

 extern NSArray *wallvalue;

    for (NSDictionary *chapter in wallvalue) {
        NSString *chapterName = [person objectForKey:@"chapters"];
        if([chapterName length] >0)
        {

            NSLog(chapterName);
        }
    }

现在我想在tablelist中显示这些chapterName。我该怎么做?

提前致谢。

2 个答案:

答案 0 :(得分:3)

NSMutableArray *tableList = [[NSMutableArray alloc] initWithCapacity:[wallvalue count]];
for (NSDictionary *chapter in wallvalue) {
    NSString *chapterName = [person objectForKey:@"chapters"];
    if([chapterName length] >0)
    {
        [tableList addObject:chapterName];
    }
}

答案 1 :(得分:0)

你不应该这样做吗,

cell.textLabel.text = [[wallvalue objectAtIndex:indexPath.row] objectForKey:@"chapters"];

编辑如果您只对那些有名字的章节感兴趣,请过滤掉所有没有正确名称的对象,然后执行上述操作,

NSArray * filteredChapters = [wallvalue filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"chapters LIKE '?*'"]];

[..]

cell.textLabel.text = [[filteredChapters objectAtIndex:indexPath.row] objectForKey:@"chapters"];