我正在研究的
tutorial定义了以下方法.
- (void)addBirdSightingWithSighting:(BirdSighting *)sighting {
[self.masterBirdSightingList addObject:sighting];
}
本教程将其描述如下:
This method creates and initializes a new
BirdSighting
object by sending to theinitWithName:location:date:
method the name and location the user entered, along with today’s date. Then, the method adds the newBirdSighting
object to the array.
在BirdSighting类上有一个initWithName:location:date:方法,它是我的数据模型.将上述方法添加到数据控制器中,该控制器只是将BirdSighting对象添加到masterBirdSightingList可变数组中.
我不明白的是教程说BirdSighting对象被发送到initWithName:location:date:方法,当我没有看到这个?
>这是因为(BirdSighting *)方法参数中的*吗?我知道*是指向对象的指针,但它是否创建了一个新对象并调用其默认的init方法?只是因为我将initWithName:location:date添加到BirdSighting类中,它会自动成为我的默认init方法吗?
最佳答案 没有魔法.你是对的.该行代码不会创建或初始化BirdSighting对象.
添加:
你已经发现,或许比许多人更早,Apple代码和文档都不是完美的.有时他们甚至有严重的问题.遇到不和谐时,最好相信自己的直觉并做一些自己的测试.