zoukankan      html  css  js  c++  java
  • alloc 和 init都做了什么验证。

    结论:

      alloc负责分配内存和创建对象对应的isa指针;

      init只是返回alloc生成的对象。

        所以alloc后,多次调用init,返回的对象是同一个!

    代码如下:

     1 //
     2 //  main.m
     3 //  alloc.initTest
     4 //
     5 //  Created by LongMa on 2019/5/30.
     6 //  Copyright © 2019. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[]) {
    12     @autoreleasepool {15         
    16         NSObject *obj1 = [NSObject alloc];
    17         NSLog(@"%p",obj1);
    18         
    19         NSObject *obj2 = [obj1 init];
    20         NSObject *obj3 = [obj1 init];
    21         NSLog(@"%p",obj2);
    22         NSLog(@"%p",obj3);
    23     }
    24     return 0;
    25 }

    运行结果:

    2019-05-30 09:35:37.019843+0800 alloc.initTest[65183:12003258] 0x10065d810

    2019-05-30 09:35:37.019864+0800 alloc.initTest[65183:12003258] 0x10065d810

    2019-05-30 09:35:37.019874+0800 alloc.initTest[65183:12003258] 0x10065d810

    Program ended with exit code: 0

    启发文章参考:http://www.cocoachina.com/ios/20190527/27009.html

    学无止境,快乐编码。 没有一种不经过蔑视、忍受和奋斗就可以征服的命运。
  • 相关阅读:
    JS数组方法汇总 array
    jQuery性能优化
    js禁止保存网页的一些代码
    XML LINQ简介
    一个滑动条的DIV+CSS+JS实例
    JS的正则表达式
    jQuery中$.ajax的实现
    MSSQL 2005删除所有表的语句[转]
    Jquery Toggle with Images
    SQLIte default date CURRENT_TIMESTAMP
  • 原文地址:https://www.cnblogs.com/Dast1/p/10947721.html
Copyright © 2011-2022 走看看