基本iOS代码行说明

我正在研究的
tutorial定义了以下方法.

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

本教程将其描述如下:

This method creates and initializes a new BirdSighting object by sending to the initWithName:location:date: method the name and location the user entered, along with today’s date. Then, the method adds the new BirdSighting object to the array.

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

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

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

最佳答案 没有魔法.你是对的.该行代码不会创建或初始化BirdSighting对象.

添加:

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

点赞