4

私が取り組んでいるチュートリアルには、次のメソッドが定義されています。

- (void)addBirdSightingWithSighting:(BirdSighting *)sighting {
    [self.masterBirdSightingList addObject:sighting];
}

チュートリアルでは、これについて次のように説明しています。

このメソッドは、ユーザーが入力した名前と場所、および今日の日付をメソッドにBirdSighting送信して、新しいオブジェクトを作成および初期化します。initWithName:location:date:次に、メソッドは新しいBirdSightingオブジェクトを配列に追加します。

私のデータモデルであるクラスにあるinitWithName:location:date:メソッドがあります。上記のメソッドは、変更可能な配列にオブジェクトをBirdSighting追加するだけのデータ コントローラーに追加されます。BirdSightingmasterBirdSightingList

私が理解していないのは、チュートリアルでは、これが表示されないときにBirdSightingオブジェクトがメソッドに送信されると書かれているということですか?initWithName:location:date:

  • これは*(BirdSighting *)メソッドのパラメーターにあるためですか? がオブジェクトへのポインタであることは理解して*いますが、新しいオブジェクトを作成してデフォルトの init メソッドを呼び出すのでしょうか? をクラスに追加したinitWithName:location:dateからといっBirdSightingて、それが自動的にデフォルトのinitメソッドになるのでしょうか?
4

1 に答える 1

2

そこに魔法はありません。あなたが正しい。このコード行は、BirdSighting オブジェクトを作成または初期化しません。

追加した:

おそらく多くの人よりも早く、Apple のコードもドキュメントも完璧ではないことに気付きました。深刻な問題を抱えていることもあります。不協和音に遭遇したときは、自分の直感を信じて、自分でテストするのが最善です。

于 2012-12-12T21:47:46.360 に答える