我正在通过一些在线教程学习目标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
}
我不明白为什么他写了一个setHW方法,如果他已经使用@synthesize获得了宽度和高度的setter和getter。我错过了什么?
由于
答案 0 :(得分:5)
他正在合成宽度和高度,但是你要问的关于setWH
的方法看起来是一个名字很简单的便利方法,可以在一个地方设置宽度和高度。
实际上,它看起来很糟糕,除了不应该使用self.width
和self.height
之外,对于非属性的东西,set
看起来很奇怪。
init
找一位更好的老师。
如果您喜欢观看视频 - 启动iTunes,请转到iTunesU查找C193P,这是斯坦福大学iPhone编程课程的视频集。你会在那里学到更多东西。
已编辑添加
iTunes上此课程的链接为https://itunes.apple.com/gb/itunes-u/ipad-iphone-application-development/id473757255
答案 1 :(得分:3)
我已经看过链接的视频了,我不认为它是学习Objective-C的非常好的资源。
你猜测的“setWH”方法是不必要的,并且有一个非常令人困惑的声明。
-(void) setWH:(int) w:(int) h
w
和h
参数变量或w:
是方法名称的一部分。如果w:
是方法名称的一部分,那么为什么参数变量名为h
。如果w
是参数变量,则方法名称实际为setWH::
。
实际上,w
和h
都是 参数变量,这意味着您可以按如下方式调用此方法:
[obj setWH:10 :10];
这不是惯用的Objective-C。