- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教程详细:
????? 技术:Objective-C??? 难度:初学者?? ? 完成时间:20-35分钟
? 欢迎来到学习Objective-C系列教程的第四部分,到目前为止,我们在理论,原则以及语言功能。今天,我们会创建一个像前面举的汽车例子那样的简单类。我们的类会详细描述汽车,并允许我们读写其属性。在今天的例子之后,你将能够用Xcode创建自己的类并熟练运用它。
?? 到目前为止,我们已经收到了一些很好的反馈,包括通过邮件,留言,twitter等。我很高兴看到这么多童鞋对这系列教程感兴趣,更高兴的是,看到大家都动起手来实践并提出问题。呵呵,继续努力吧!
准备开始
??? 首先用Xcode创建一个新项目,在Mac OS X 的分隔符下,点击Application,然后点击Command Line Tool,最后,更改下列表框设置Foundation的类型。
? 保存该项目,我就命名为CarApp吧,当这项目窗口出现时,我们需要创建一个新类。点击Command-N(或 FileNew File),在Mac OS X下导航到Cocoa并选择Objective-C类。确保子类是继承于NSObject并点击下一步。命名你的类为SimpleCar并确保 .h 文件被创建了,然后就保存。
? 我们的类现在已经创建好了,但它是空的。让我们为它填充些代码吧。还记得在Objective-C中,我们把代码分成两部分吗:接口与实现。它让在接口的工作变得有逻辑意义,所以这是我们的初衷。
编写接口
??? 打开SimpleCar.h文件,当前的状态看起来是这样的:
1. #import Cocoa/Cocoa.h
2.
3. @interface SimpleCar : NSObject {
4.
5. }
6.
7. @end
? 首先,我们引入Cocoa.h,这使我们可以获得像NSString,NSMutableString等这样的东东。然后,我们创建类(SimpleCar)作为NSObject的子类。
? 现在, 我们需要确定我们的类需要保存什么样的信息了。既然我们像平常一样用汽车,我们需要存储有关汽车的相关信息,例如:
make????? 牌子???
model??? 型号
VIN??????? 汽车识别码
? 还有更多信息我们可以写进,但现在不会这样。对于其中的每个属性,我们需要用一个合适的数据类型去存储。牌子和型号是字符范畴(像文件,号码和标点符号),所以用string是比较合适的哟。VIN(汽车识别码)仅仅是由数字组成。我们的代码看起来会像这样(省略前面):
1. @interface SimpleCar : NSObject {
2. NSString* make;
3. NSString* model;
4. NSNumber* vin;
5. }
6.
7. @end
??? 我们之前也提过了,为了读写类的数据,会用到一个方法。因此,要设置变量,我们需要增加方法。要做这样,我们提出四点:一个设置牌子,一个设置型号,一个设置VIN,以及最后一个方法用来设置牌子和型号(只是为了告诉大家怎样使用多个参数罢了)。
1. @interface SimpleCar : NSObject {
2. NSString* make;
3. NSString* model;
4. NSNumber* vin;
5. }
6.
7. // set methods
8. - (void) setVin: (NSNumber*)newVin;
9. - (void) setMake: (NSString*)newMake;
10. - (void) setModel: (NSString*)setModel;
11.
12. // convenience method
13. - (void) setMake: (NSString*)newMake
14. andModel: (NSString*)newModel;
15.
16. @end
? 我们在大括号@end之间声明方法,在方法之前放置 “-“是要告诉编译器这个方法是实例方法。一个实例方法是依靠实例执行的方法。相反,一个”+”表示这个方法是类方法,这方法的执行并不需要一个单独的对象,这接下来会讲到。
? 我们的第一个方法(setVin)返回void,并以一个NSNumber作为参数。我们的第二个方法(setMake)也相类似,也返回void,并以一个NSString作为
文档评论(0)