iOS-tips

作者: 李永开 | 来源:发表于2019-02-14 19:18 被阅读0次
    • OC语言的面向对象特性是通过封装c和c++实现的,编译器会将OC编译为c和c++,再讲c编译为汇编语言,最终转成机器语言.
    • 使用xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fojbc-arc -fojbc-runtime=ios-8.0.0 main.m可以指定运行平台(iphoneos)和架构(arm64)后,编译oc语言得到main.cpp文件.(cpp为c++语言文件后缀)
    • alloc()方法内部调用的是allocWithZone方法
    • Person类在c++中的实现长这样
    struct Person_IMPL{
       struct NSObject_IMPL s; //父类的结构体,结构体里面是一个Class isa指针.
       int _age;
    }
    
    • 可以将对象强转为结构体
    struct Person_IMPL *perImp = person
    NSLog(@"%d",person -> _age);//通过结构体访问对象的属性
    
    • memory write 0x00010 8可以修改0x00010这个内存地址的值为8
    • apple用的是小端模式
    • 使用p/x (long)father->isa打印isa的地址值
    • 可以在-(void)loadView方法里面替换系统自带的控制器view
    • 控制器的self.view是懒加载
    • 多线程 : 程序员可以控制新建、就绪、阻塞、死亡一个线程,唯独不能控制它什么时候运行,什么时候运行是由cpu底层做决定的.
      NSThread的start方法也只是把新建的线程放到可调度线程池里面,也就是就绪状态.

    相关文章

      网友评论

          本文标题:iOS-tips

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