Object C语法快速入门
【Object C语法快速入门】 Objective-C(简称ObjC)是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台。以下是一些Object C的基础语法知识点: 1. **方法调用**: - 在ObjC中,方法调用采用消息传递的方式,例如`[object method];`和`[object methodWithInput:input];`。对象的方法可以返回值,如`output = [object methodWithOutput];`。 - `id`是ObjC中的一个通用类型,它可以指向任何类型的对象。例如:`id myObject = [NSString string];`。 2. **类型转换与对象指针**: - 当你知道对象的实际类型时,可以通过类型转换提高代码的清晰度,例如:`NSString *myString = [NSString string];` - 所有的Objective-C对象变量都是指针类型,以星号(*)表示。`id`类型已经预定义为指针类型,因此在声明时不需要再次添加星号。 3. **嵌套消息调用**: - ObjC中的嵌套消息调用类似其他语言的嵌套函数调用,如:`[NSString stringWithFormat:[prefs format]];` - 避免过多的嵌套以保持代码的可读性。 4. **多参输入的方法**: - 方法可以接受多个输入参数,如:`-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;`并按照`[myData writeFile:@"/tmp/log.txt" atomically:NO];`的方式调用。 - 参数在运行时系统中通过方法名和参数名识别,即使在定义时没有显式命名。 5. **Accessors(Getter & Setter)**: - 默认情况下,ObjC实例变量是私有的,需通过访问器(setter和getter)进行读写。传统语法为`[photo setCaption:@"Day at the Beach"]`和`output = [photo caption];` - ObjC 2.0引入了点语法`.`,使得调用setter和getter更直观,如:`photo.caption = @"Day at the Beach";`和`output = photo.caption;` 6. **对象创建**: - 创建对象通常有两种方式,如`NSString* myString = [NSString string];`。这种方式创建的对象通常是自动释放的(autoreleased),后续会介绍更多关于自动释放的内容。 7. **内存管理**: - ObjC使用引用计数来管理内存,对象的生命周期由其引用计数决定。创建、持有和释放对象是开发者需要注意的重要概念。 8. **分类与协议**: - ObjC允许通过分类(Category)为已有类添加方法,而不扩展其数据结构。协议(Protocol)则定义了一组方法签名,用于接口约定或多继承替代方案。 9. **异常处理**: - ObjC支持异常处理机制,通过`@try`、`@catch`和`@finally`来捕获和处理程序运行时可能出现的错误。 10. ** Blocks**: - Blocks是ObjC中的一种闭包(Closure)特性,允许将代码块作为值传递,常用于异步操作和迭代。 以上只是Object C语法的冰山一角,深入学习还包括Foundation框架、UIKit框架、多线程、网络编程、Core Data等众多主题。要精通Objective-C,需要不断地实践和学习。
剩余15页未读,继续阅读
- huangjf_20711221282015-04-131.準備學下基本object-c的知識, 開始IOS的開發
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JavaScript函数
- java-leetcode题解之Range Sum Query 2D - Mutable.java
- java-leetcode题解之Random Pick Index.java
- java-leetcode题解之Race Car.java
- java-leetcode题解之Profitable Schemes.java
- java-leetcode题解之Product of Array Exclude Itself.java
- java-leetcode题解之Prime Arrangements.java
- MCU51-51单片机
- java-leetcode题解之Power of Two.java
- java-leetcode题解之Power of Three.java