2012-12-12 106 views
4

tutorial我工作的基本的iOS线定义了以下方法。代码说明

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

本教程介绍此如下:

该方法创建和发送到initWithName:location:date:方法的名称和位置的用户输入,用今天的日期进行初始化一个新的BirdSighting对象。然后,该方法将新的BirdSighting对象添加到该阵列。

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

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

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

您可以链接到该教程? – paulmelnikow

+0

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/DesigningDataModel/DesigningDataModel.html#//apple_ref/doc/uid/TP40011318-CH3-SW2向下滚动至底部,并点击'实施数据控制器的数据访问方法' –

+0

显然只是文本中的一个错误。这只是将一个BirdSighting对象(在别处创建)添加到'masterBirdSightingList'。 – Rob

回答

2

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

补充:

你已经发现,也许早于很多,无论是苹果的代码或文档是完美的。有时甚至有严重的问题。当你遇到不和谐时,最好相信你的直觉并做一些自己的测试。

+1

检出链接;在教程中肯定看起来像一个错误。苹果文档底部有一个链接,您可以在其中报告这类问题。 – paulmelnikow

+0

感谢noa的帮助,我被困在那句话上一分钟。我已经向Apple报告了这个问题。 –