第一章: IOS优化(1) (Effective Objective-C随记)

第一章: 熟悉OC

第一条: 了解OC的起源
一: OC面向对象语言特性
  1. OC 和Java, C++面向对象语言相似, 不过很多方面有所差别. 该语言使用”消息结构”(messaging structure)而非”函数调用”(function call), 俩者的区别看上去就像这样 :

// Message (Objective -C)
Object *obj = [Object new];
[obj performWith: parameter1 and:parameter2];
// Function Calling (C++)
Object *obj = new Object;
Obj->perform(parameter1, parameter2)

  • 关键的区别在于: 使用消息结构的语言, 其运行时所执行的代码由运行环境来决定, 而使用函数调用的语言, 则由编译器决定.
  • 如果上述代码中调用的函数是多态的, 那么在运行时会查出到底应该执行哪个函数实现, 而采用消息结构语言, 不论是否为多态, 总是在运行时才会去查找所要执行的方法.
二: OC的指针
  1. OC中的指针是用来指示对象的, 想要声明一个名为someString的变量, 令其指代某个对象, 加入类型是NSString * , 可用下面语法

NSString *somgString = @”hehe”;

  1. 他声明了一个名为someString的变量, 类型为NSString *, 指向了@”hehe”这个对象

  2. 所有的OC对象都必须这样声明, 因为对象所占内存总是分配在 “堆空间” (heap space)中, 绝不会分配在 “栈”(stack)上, 不能在栈中分配OC对象

《第一章: IOS优化(1) (Effective Objective-C随记)》 Paste_Image.png

要点:
  1. OC使用动态绑定消息结构, 也就是说,  在运行时,  才会检查对象类型,  接收一条消息后,  究竟应执行何种代码,  由运行期环境而非编译器决定
    
  2. OC为C添加了面向对象特性

声明: 以上大部分内容均来自 Effective Objective-C

    原文作者:佐咡桗
    原文地址: https://www.jianshu.com/p/c9eebb11c78e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞