0

我正在通过一些在线教程学习目标 c,我有一个问题。在这个视频中:http ://www.youtube.com/watch?v=Nb9-1rRjO_8&feature=player_detailpage#t=367s你可以看到我在这里写的代码:

@synthesize width, height; //setters and getters

-(void) setWH:(int) w:(int) h{
    width = w;
    height = h
}

如果他已经使用@synthesize 获得了宽度和高度的设置器和获取器,我不明白他为什么要编写 setHW 方法。我错过了什么?

谢谢

4

2 回答 2

5

他正在合成宽度和高度,但是您所询问的方法setWH看起来是一种名称不好的便捷方法,可以将宽度和高度设置在一个位置。

实际上,它看起来很糟糕,除了不使用self.widthself.height他应该做的那样,拥有一个set不是属性的东西看起来很奇怪。

在哪里init

找一个更好的老师。

如果你喜欢看视频 - 启动 iTunes,去 iTunesU 查找 C193P,这是斯坦福 iPhone 编程课程的视频集。你会在那里学到更多正确的东西。

编辑添加

iTunes 上本课程的链接是https://itunes.apple.com/gb/itunes-u/ipad-iphone-application-development/id473757255

于 2012-10-15T13:43:29.383 回答
3

我看过链接的视频,我认为它不是学习 Objective-C 的一个很好的资源。

您推测的“setWH”方法是不必要的,并且声明非常混乱。

-(void) setWH:(int) w:(int) h

wh参数变量还是w:方法名的一部分。如果w:是方法名称的一部分,那么为什么要调用参数变量h。如果w是参数变量,那么方法名称实际上是setWH::.

事实上wh 都是参数变量,这意味着您可以按如下方式调用此方法:

[obj setWH:10 :10]; 

这不是惯用的 Objective-C。

于 2012-10-15T13:44:43.253 回答