美文网首页将来跳槽用
OC基础学习8:对象初始化

OC基础学习8:对象初始化

作者: Andy_Ron | 来源:发表于2017-09-10 23:54 被阅读23次

1 分配(allocation)对象

alloc方法干的事件:

1 从操作系统获得一块内存。
2 指定为存储对象的实例变量的位置。
3 对内存初始化:BOOL类型被初始化为:NOint类型被初始化为:0float类型被初始化为:0.0;所有指针被初始化为nil

  • 初始化对象
    init方法
    Car *car = [[Car alloc] init];

  • 初始化要做些什么

    1. CarParts程序中初始car对象是,init方法中创建engine对象和全部4个tire对象
    2. 懒性求值(lazy evaluation),只为engine对象和tire对象预留位置

2 便利初始化函数(convenience initializer)

以init开头的方法只是遵循命名约定的普通方法。
NSString类的初始化方法例子:

  • - (id) init;

      NSString *emptyString = [[NSString alloc] init];
    
  • - (instancetype)initWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);

      NSString *string = [[NSString alloc] initWithFormat:@"%d or %d", 1, 2];
    
  • - (nullable instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

      NSError *error = nil;
      NSString *string1 = [[NSString alloc] initWithContentsOfFile:@"/tmp/words.txt" encoding:NSUTF8StringEncoding error:&error];
      if (nil != error) {
          NSLog(@"未能读取文件数据:%@", [error localizedDescription]);
      }
    

3 指定初始化函数(designated initializer)

  • 类中的某个初始化方法被指派为指定初始化函数
  • 该类的所有初始化方法都使用指定初始化函数执行初始化操作
  • 子类使用期超类的指定初始化函数进行超类的初始化
  • 通常,接受参数最多的初始化方法是最终的指定的初始化函数

相关文章

  • OC基础学习8:对象初始化

    1 分配(allocation)对象 alloc方法干的事件: 1 从操作系统获得一块内存。2 指定为存储对象的实...

  • 总纲

    一句代码创建常用UI控件类与对象OC中面向对象的编程思想OC基础语法复习OC中的协议OC中的block学习导航栏按...

  • iOS OC 对象的内存对齐原则

    iOS OC 对象的内存对齐原则 1.问题的引入 初始化一个OC类,具有如下属性: 初始化对象,并获取对象的内存s...

  • OC对象底层探索 — alloc创建对象

    用于记录iOS底层学习,以备后续回顾 OC对象底层探索alloc创建对象由字节对齐到对象内存大小探索isa的初始化...

  • OC对象底层探索 — 由字节对齐到对象内存的分配

    用于记录iOS底层学习,以备后续回顾 OC对象底层探索alloc创建对象由字节对齐到对象内存大小探索isa的初始化...

  • OC对象底层探索 — isa的初始化和指向分析

    用于记录iOS底层学习,以备后续回顾 OC对象底层探索alloc创建对象由字节对齐到对象内存大小探索isa的初始化...

  • Swift<二>

    构造函数基础 构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,为对象成员变量设置初始值,在 OC 中的构...

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • Swift之构造函数(重写构造函数)

    构造函数的基础 构造函数是一种特殊的函数 主要用来在创建对象时初始化对象 为对象成员变量设置初始值 在OC中的构造...

  • IOS 对象的创建

    OC 中创建对象是基础的操作,但我们是否有了解过OC对象是怎么创建的,这篇文章就是从最基础的对象创建起,看一下OC...

网友评论

    本文标题:OC基础学习8:对象初始化

    本文链接:https://www.haomeiwen.com/subject/lktxsxtx.html