0

この一行目の表記をどう理解するか?NSDictionary をインスタンス化するこの方法について混乱しています (経験不足)。これは何かのキャスティングですか?iOS TableViewController チュートリアルの cellForRowAtIndexPath メソッドからです。

NSDictionary *item = (NSDictionary *)[self.content objectAtIndex:indexPath.row];
cell.textLabel.text = [item objectForKey:@"mainTitleKey"];
cell.detailTextLabel.text = [item objectForKey:@"secondaryTitleKey"];

代わりに次のことを期待しますが、機能します。

NSDictionary *item = [arrayContainingDictionaries objectAtIndex:indexPath.row];
cell.textLabel.text = [item objectForKey:@"mainTitleKey"];
cell.detailTextLabel.text = [item objectForKey:@"secondaryTitleKey"];
4

1 に答える 1

0

オブジェクトを NSDictionary にキャストすることは、エラーを回避するための追加の手段にすぎない可能性がありますが、Objective-C は objectForKey: メッセージを NSArray から抽出したオブジェクトに送信するため、動作するはずです。

これがあなたにいくつかの洞察を与えることを願っています。

于 2013-01-24T16:55:00.807 に答える