4

我正在处理的教程定义了以下方法。

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

本教程对此进行了如下描述:

此方法通过向该方法发送用户输入的名称和位置以及今天的日期来创建和初始化一个新BirdSighting对象。initWithName:location:date:然后,该方法将新BirdSighting对象添加到数组中。

类上有一个initWithName:location:date:方法,BirdSighting它是我的数据模型。上述方法被添加到数据控制器中,它只是将BirdSighting对象添加到masterBirdSightingList可变数组中。

我不明白的是,教程说当我看不到这个时,BirdSighting对象被发送到方法?initWithName:location:date:

  • 这是因为方法参数*中的吗?(BirdSighting *)我知道这*是一个指向对象的指针,但它会创建一个新对象并调用其默认的 init 方法吗?仅仅因为我添加了initWithName:location:dateBirdSighting,它会自动成为我的默认init方法吗?
4

1 回答 1

2

那里没有魔法。你是对的。该行代码不会创建或初始化 BirdSighting 对象。

添加:

您可能比许多人更早地发现,Apple 代码和文档都不是完美的。有时他们甚至有严重的问题。当你遇到不和谐时,最好相信你的直觉并做一些你自己的测试。

于 2012-12-12T21:47:46.360 回答