嗯,我已经开始与iPod/iPhone编程使用的头一iPhone发展(O'reilly)和我输入代码书。有两个问题,一个是程序有关的和其他的则不是。

  • 我不理解的格式的目标-c的方法。我得到的一些错误,现在,基于源代码从书。这导致 我的下一个问题。

  • 一些代码,是车。我想是因为我不能拿到代码运行,而无需修改。这本书有一些拼写错误,在文本,因为它是第一版以及诸如此类的东西,但我可以"固定"的代码有做与它?

所以... 我在哪里可以了解更多有关目标-c的方法和它们是如何工作在结构方面和在那里返回的类型和论点去吗?

对于那些书我是中间的InstaTweet应用程序向开始。

谢谢。

有帮助吗?

解决方案

也许一个之间的比较"c"的语言和obj-c将是有益的--让我们一起去Java。想象一下,一个矩形类setBackgroundColor方法。我们将承担我们的一个实例矩形称为rect.

在Java的方法,该方法的签名很可能会

public void setBackgroundColor(int r, int g, int b) { ... }

在目标C中,辩论的一部分的方法的签名,所以它可能是

- (void)setBackgroundColorWithRed:(int)r green:(int)g blue:(int)b;

在"-"意味着这是一个实例法在矩形类。(void)的方法是返回的类型。后来的论点。每个结肠定义参数,这是输入(每arg是(int)在此例)。

让我们比较调用这些方法。Java:

rect.setBackgroundColor(255, 255, 0);

Obj-c:

[rect setBackgroundColorWithRed:255 green:255 blue:0];

很多人跌倒在obj-c的语法--你并不孤单。我们希望这一比较将会使事情更清楚。它还体现了一种语言的力量的目标-c:在呼叫的时间,这清楚是什么你的论点。如果我们阅读码看见Java方法被称为不是显而易见的是,论据是红色的,蓝色,绿色的。在obj-c,这是令人痛苦地明显的是,我们正在设置的个人色彩的价值观。授予的,大多数开发可以猜测的三个参数setColor方法,但更复杂的方法得到令人困惑。这里是一个更复杂的方法中的定义和目标-c:

static Dog createDog(  String name
                     , int age
                     , boolean isNeutered
                     , String ownerName
                    );
+ (Dog *)createDogNamed:(NSString *)name 
     age:     (int)        age 
     neutered:(BOOL)       isNeutered 
     owner:   (NSString *) owner;

在呼叫的时间:

Dog.createDog("Fluffy", 2, true, "Moshe");
[Dog createDogNamed:@"Fluffy" age:2 neutered:YES owner:@"Moshe"];

目标-c更加详细,但更具可读性。在Java例,这是不真的清楚是什么"2"和"真实"论据的意思。目标-c几乎读起来就像是英语。

其他人已经张贴链接,以更深入的指南,但我希望这能让你过去的句法的绊脚石块足以使链接有用的。我乐于回答更多的具体问题。以我的经验,obj-c新手有一个真正艰难的时间与法,然后它 点击s和感觉。挂在那里!

其他提示

该定义的一个目标-C的方法非常简单。这是非常相似的一定期C呼叫功能定义,实际上。大外的选项命名的参数。这里有一个例子:

-(int)addX:(int)x toY:(int)y
{
    return x + y;
}

你可以用通过发送消息的适当对象:

int z = [object addX:x toY:y];

在这种情况下,我给出的参数和参数的相同的姓名,以使它清楚如何的事情。你可以很容易地这样做:

int z = [object addX:4 toY:7];

在这之后, z 将11.

检查了苹果的 介绍的目标C.

基本方法的格式

-(ReturnType *)methodName:(VariableType *)variableName{

}

例如:

-(NSString *)giveMeANewStringFromAnOldString:(NSString *)oldString{

}

你也应该检查书的网站的勘误。

我做同样的事情你没有。我拿起头先的iPhone发展本书太(复盖3.1SDK)。

我跑过所有的教程在它发现,只有1个错误,导致我应用于不工作(我做了一个注意到它在我的书但我不能找到它现在...).

所以在那之后我意识到我已经完全相同的问题,你们有用的语法。

我捡到"编程在目标C2.0",由斯蒂芬*拉科昌.(它只是辉煌。) 这本书是清楚和简明的。我甚至都没让它通过25%的图书和我所有的问题都回答。

阅读目标-C码扔给我几个月,因为我使用的不同语法,我的大脑了一点时间来调整该方法的目标-C的期望。

什么,我发现目标-C码变得真正可读一旦你把你的大脑。卡尔Norum的例上是一个伟大的演示的可读性。

[object addX:4 toY:7];

它没有得到更具可读性比!

还有一些术语是有点不同。"消息的一个目"与"呼吁的一种方法"把我扔了几个星期了。

我希望这本书的建议可以帮助你,这真的帮了我很多。

有一些很好的学习资源从苹果:

学习目标-C:底漆

编码准则的可可

祝你好运!

阅读 可可(R)方案编制Mac(R)OS X(第3版), ,这是圣经Mac和可可。

我没有任何问题,但是请记住,API总是向前迈进所以有可能会稍微更新/改变。但我还没有找到任何会阻止我整理了所有代码,例和演习。

这是书中阅读。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top