Objective-Cで配列を初期化する方法

objective-c
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);
        }
    }

次に、これらのchapterNameをテーブルリストに表示します。 どうすればいいですか?

前もって感謝します。

  1  0


ベストアンサー

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

3


あなたはただやっているべきではない、

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"];

0


タイトルとURLをコピーしました