我正在处理的tutorial定义了以下方法。
- (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:date
添加到BirdSighting
类,它是否会自动成为我的默认init
方法?答案 0 :(得分:2)
没有魔法。你是对的。该行代码不会创建或初始化BirdSighting对象。
<强>加了:强>
您发现,或许比许多人更早,Apple代码和文档都不是完美的。有时他们甚至有严重的问题。当你遇到不和谐时,最好相信你的直觉并做一些你自己的测试。