1

長年のリスナーなど。私は NSDictionary と NSArray に関する多くの投稿を調べましたが、これを正しく理解できません。明確化を期待しています。

キーname、filename、fileObjectを持つ NSArray masterArrayがあります

名前とファイル名を UITableViewCell の 2 つの別々のラベルに表示したいと思います。

現在、私はこのようにしています(この質問の目的のために、cellForRowAtIndexPathメソッドにすべてを入れました)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"];

NSArray *namesArray = [NSArray arrayWithArray:[masterArray valueForKey:@"name"]];
NSArray *filenamesArray = [NSArray arrayWithArray:[masterArray valueForKey:@"fileName"]];

NSString *name = [namesArray objectAtIndex:indexPath.row];
NSString *filename = [imageNameArray objectAtIndex:indexPath.row];

cell.nameLabel.text = name;
cell.filenameLabel.text = filename;

return cell;

}

私の質問は、次のようなリクエストで NSArray (または NSDictionary) にアクセスする方法はありませんか?

NSString *name = [masterArray valueAtIndex:indexPath.row valueForKey:@"name"];

それをより小さな配列/辞書に分割し、これらの値に個別にアクセスする必要がありますか、それともよりエレガントに行うことができますか?

4

1 に答える 1

1

iOSではOrderedDictionaryを使用できます。このサード パーティ API が行うことは、すべてのキーと値のペアを NSDictionary にインデックス付き形式で、つまり NSArray のように連続的に格納することです。NSDictionary は、インデックス付け/順序付けされた方法で値を保存しません。このサードパーティの辞書はそうです。

于 2012-11-06T11:44:06.757 に答える