没有合适的资源?快使用搜索试试~ 我知道了~
objective-c的中文详解
需积分: 10 1 下载量 131 浏览量
2013-12-18
14:38:04
上传
评论
收藏 385KB PDF 举报
温馨提示
试读
13页
objective-c ios开发的入门书籍,中文版,经典书籍,希望有所帮助
资源详情
资源评论
资源推荐
Learn&Objective‐C&
原文地址http://cocoadevcentral .com/d/lear n_objec tivec/5
5
译者前言
在网上看到这篇文章觉得写的很不错,但是貌似没有人翻译成中文,我就大胆翻译
了。本人做软件开发6年了,但是大多数是在Windows平台上,最近才在我的机器上装
了一个leopard,在Objective-C上也是一个新手,对于本文翻译的是否到位心里还
在打鼓。如果有觉得翻译不对不好的地方,请与我联系,我的油箱是:cchenhao at gmail
dot com。
cc很好,谢谢大家。
Objective)C+
Objective‐C是开发Mac软件的主要编程语言。如果你了解一些面向对象的基本概念和
C语言,那么会对你学习Objective‐C有很多帮助,如果你不了解C,那么建议你先读一下
C5 指南。5
这篇指南由Scott5Stevenson编写并做图。5
方法调用+
为了尽快开始,让我们先看一些例子。5
5
调用一个对象的方法的基本语法是这样的:5
[object method];
[object methodWithInput:input];
方法可以有返回值:
output = [object methodWithOutput];
output = [object methodWithInputAndOutput:input];
你还可以调用类的方法,这也是创建一个对象的办法。在下面的例子里,我们调用
了NSSting类的string方法,用来返回一个新的NSString类的对象。
id myObject = [NSString string];
id类型意味着变量myObject可以是任意类型的对象。所以,当你编译这段代码时,
它的实际类型以及它所实现的方法编译器是不知道的。
在我们的例子里,很显然对象的类型是NSString,所以我们可以改变对象的类型
声明:
NSString* myString = [NSString string];
现在,这就是一个NSString类型的变量了,如果我们在这个对象上调用NSString
类型对象不支持的方法,编译器就会发出警告。
注意:在对象类型的右面有一个星号(*),在Objective-C中,所有的对象变量
都是指针类型。id类型已经被预定义为指针类型,所以不需要加一个星号。
嵌套调用&
在许多编程语言中,嵌套的方法或函数调用像是这样的:5
function1(function2());
function2的返回值做为输入参数传递给function1。在 Objective-C中,嵌套
调用看上去像是这样的:5
[NSString stringWithFormat:[prefs format]];
要尽量避免在一行语句中进行两层以上的嵌套,这样会使代码的可读性降低。
多输入参数的方法&
一些方法需要多个输入参数。在Objective-C中,一个方法的名字可以被拆分成几
段,在头文件中,多输入参数的方法声明看上去像是这样的:
-(BOOL)writeToFile:(NSString *)path
atomically:(BOOL)useAuxiliaryFile;
你可以这样调用这个方法:
BOOL result = [myData writeToFile:@”/tmp/log.txt”
atomically:NO];
这些不是命名参数。在运行时环境中,该方法的名字实际上是
writeToFile:atomically:
访问器+
在Objective‐C中,所有的实例变量默认都是私有的,所以,在大多数情况下,你应
该使用访问器来获取或设置这些变量的值。现在有两种语法。下面的是传统的1.x语法:5
[photo setCation:@”Day at the Beach”];
output = [photo caption];
第2行代码不是直接读取实例变量。实际上它是在调用名为caption的方法。在
Objective-C中,大多数情况你不用在获取器(getter)前面添加一个”get”前缀
在任何情况下,在方括号中代码都意味着你是在给一个对象或者一个类型发送一个
消息(即一个方法调用)。
点操作符&
在Mac OS X 10.5中,Objective-C 2.0新增了点操作符的设置器(setter)
和获取器(getter):
photo.caption = @”Day at the Beach”;
output = photo.caption;
两种语法你可以使用任何一种,但是在一个项目中最好只使用一种。同时,点语法
只能使用在设置器(setter)和获取器(getter)上,而不能用于普通方法。
创建对象+
5
创建对象有两种主要的办法。第一个是之前你看到的:5
NSString* myString = [NSString string];
这是一种更加方便自然的方式。通过这种方法,你创建了一个自动释放
(autoreleased)的对象,这一点我们会在后面看到更多的细节。尽管如此,在许多
地方,你可能需要通过手工创建的方式来创建一个对象,如下:
NSString* myString = [[NSString alloc] init];
这是一个嵌套的方法调用。第一个是NSString类本身的alloc方法调用。这是一
个相对低层的调用,它的作用是分配内存及实例化一个对象。
第二个是调用新创建对象的init方法。init方法通常做对象的初始化设置工作,
比如创建实例变量。作为一个类的使用者,你无法知道这些方法的实现细节。
在某些情况下,你可以使用init方法的另外一种版本,这些版本带有输入参数:
NSNumber* value = [[NSNumber alloc] initWithFloat:1.0];
内存管理基础+
5
剩余12页未读,继续阅读
u010162461
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 正点原子开拓者FPGA多人表决器代码项目
- EOP-Last5Years.txt
- windows 32位、64位系统常见缺少的库
- 毕业设计基于springboot+vue实现的求职招聘类型网站源码+数据库(高分项目).zip
- 535springboot + vue 体质测试数据分析及可视化设计.zip(可运行源码+数据库文件+文档)
- python毕业设计-基于Django+OpenCV的二维码生成与识别系统源码.zip
- 基于springboot+vue实现的求职招聘类型网站源代码+数据库(优质毕设项目).zip
- iOS APP提审checklist
- 第十四届中北大学ACM程序设计竞赛.zip
- UIGF_200852355_202404242026.json
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0