Apple の Master Detail Template から取得した次のメソッドの Objective-C がわかりません。
- (void)insertNewObject:(id)sender
{
if (!_objects)
{
_objects = [[NSMutableArray alloc] init];
}
[_objects insertObject:[NSDate date] atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0
inSection:0];
[self.tableView insertRowsAtIndexPaths: @[indexPath]
withRowAnimation: UITableViewRowAnimationAutomatic];
}
コードは MasterViewController.m ファイルにあります。私にとって混乱のポイントは次のとおりです。 - とは@[indexPath]
どういう意味ですか? これは、何かを配列にするための構文ですか。文字列を表す文字として「@」に遭遇しただけです。明確化: NSIndexPath とは何か、またそれがどのように機能するかを理解しています。@ 文字が前に付いた角かっこでオブジェクトを配置する構文に慣れていません。これは何かを配列にしますか?複数の NSIndexPath がある場合はどうなりますか? @[indexPath1, indexPath2, indexPath3] この方法でそれらすべてを配列にロードできますか?これは NSObject から派生したもので機能しますか? 結果は常に配列ですか? これは言語のどこに文書化されていますか? この言語機能は何と呼ばれていますか (調べることができます)?
- メソッド insertRowsAtIndexPaths:withRowAnimation は、テーブルに何かを配置する場所を指定しているようですが、正確に何を配置するかは指定していません。アイテムをテーブルに挿入するときに、どのオブジェクトをデータ ソースとして使用するかをメソッドがどのように認識しますか。
NSMutable *_objects;
デリゲートとデータ ソースの関係は xib で指定されているため、MasterViewController がデータとテーブルの関連付けを処理することは明らかですが、配列とどこかに指定されたテーブルとの 関係はないようです。
かなり基本的なものが欠けていることが明らかなので、これを説明してくれてありがとう。