240 发简信
IP属地:湖南
  • MangoFix2.0将支持以下特性:
    1、取地址操作符
    2、静态变量部分特性支持
    3、非内联C函数声明即用,无需预先埋
    4、异常捕获
    敬请期待:smile::smile::smile::smile::smile::smile:

  • 这里的结论可能是有问题的:1,检索runtime源码发现有「This function IS NOT thread-safe...」注释的只有四个函数分别是objc_initWeak,objc_destroyWeak,objc_copyWeak,objc_moveWeak,这四个函数是弱引用指针的创建、销毁、复制、与移动,并不包含objc_loadWeakRetained读取弱引用指针函数 2,原文中objc_loadWeakRetained函数lock以下的逻辑是不对的,正确的逻辑只会去判当前对象是否有效,有效则立即返回当前result, 而不会去调weak_read_no_lock去取弱引用指针 3,假设result被赋值后立即被其它线程free掉了,那正确的逻辑会偿试retain result所指的对象,如果不能retain会返回nil

    不安全的weak变量

    对于存在多线程释放并且并发访问的对象,不建议使用weak修饰或访问。因为weak的底层实现并不完全是线程安全,否则较容易导致over-release而crash。 一、问题 ...

  • 「解答疑惑二」 的内容都是错的

    深入理解 weak-strong dance

    weak-strong dance 简介 使用 Block 时可以通过__weak来避免循环引用已经是众所周知的事情: 这时handler持有 Block 对象,而 Bloc...

  • 120
    Obfuscator-LLVM在iOS中的实践

    原文链接:http://fighting300.com.... OLLVM简介 OLLVM(Obfuscator-LLVM)是瑞士西北应用科技大学安全实验室于2010年6月份...

  • :+1:

    程序员的2018年终总结

    回顾2017定的目标 写这个文章之前,我看了一下自己2017年年终为2018年定下的目标。 因为公司目前的状态,我也结合自身情况考虑了很多,综合之后摆在我面前的只有两条路可以...

  • @熟悉丶那條街 并不是全在引用计数表中,ARM64上首先保存在isa指针,溢出后会分成两部分保存一部分在isa指针,一部分在引用计数表

    iOS引用计数管理之揭秘计数存储

    前言 最近偶尔出去面试了解一下现在iOS行情和面试会问的问题。其中有这样的一个问题被问到很多次:引用计数原理。回去查资料发现当时回答的很糟糕,于是就在这里单独写一篇文章记录下...

  • @Thebloodelves 意思就是SideTableBuf所指向的内存强转为StripedMap类型呀,StripedMap里才真正的包含SideTable

    iOS引用计数管理之揭秘计数存储

    前言 最近偶尔出去面试了解一下现在iOS行情和面试会问的问题。其中有这样的一个问题被问到很多次:引用计数原理。回去查资料发现当时回答的很糟糕,于是就在这里单独写一篇文章记录下...

  • @Maru :+1: 说反了

    【领略RxSwift源码】- 订阅的工作流(Subscribing)

    开篇 一直觉得自己似乎越来越浮躁了,可能当代的大多数年轻人都活在恐慌里,问题已经从小时候的不思进取变成了“太思进取”,似乎总是想不管什么投入都能立竿见影。但是很多时候总是事与...

  • 「当__oldValue的值和指针所指向的内存地址的变量的值相等时,返回true否则为false,于此同时,如果__newValue和当前的值不相等,那么就赋值,使得__theValue的值为新值。」与__newValue无关,只要_oldValue参数与内存中的值不一样就会使得__theValue的值为新值

    【领略RxSwift源码】- 订阅的工作流(Subscribing)

    开篇 一直觉得自己似乎越来越浮躁了,可能当代的大多数年轻人都活在恐慌里,问题已经从小时候的不思进取变成了“太思进取”,似乎总是想不管什么投入都能立竿见影。但是很多时候总是事与...

  • 120
    Objective-C weak关键字实现源码解析

    Runtime源码版本:objc4-723, ARM64平台 weak/__weak是OC开发中常用的关键字,其有当指向的对象被销毁时置nil并且不会改变引用计数特性。 示例...

  • alignas(StripedMap<SideTable>) static uint8_t SideTableBuf[sizeof(StripedMap<SideTable>)]; 意思是SideTableBuf数组首地址对齐到StripedMap<SideTable>类型,不是数组的每个元素对齐对到StripedMap<SideTable>类型。这里相当于分配了一块StripedMap<SideTable>大小的内存而不是4096块

    iOS引用计数管理之揭秘计数存储

    前言 最近偶尔出去面试了解一下现在iOS行情和面试会问的问题。其中有这样的一个问题被问到很多次:引用计数原理。回去查资料发现当时回答的很糟糕,于是就在这里单独写一篇文章记录下...

  • 「以前我们一直说obj_msgSend用汇编来写是为了速度,但这并不是主要原因,因为retain,release也是非常频繁使用的方法,为什么不把这几个也改为汇编呢。其实更重要的原因是如果用C来写obj_msgSend根本实现不了!」 最后的「用C来写obj_msgSend根本实现不了」结论有点跳跃:joy:

    C方法的调用参数与ARM汇编

    在平时开发和调试中,经常遇到C调用栈和汇编,所以这里来统一的了解下这部分内容,本章需要一定的汇编基础才能更好的理解。 函数签名 在JavaScript中,我们定义函数和调用函...

  • 博主,我也遇到了找不到.ipa的问题。
    《But,这个地址也没用啊,在执行 POST - Integration Scripts时候,此文件夹还未生成.
    最终发现,在集成的过程中, 在IPA_PATH会生成ipa,存在其文件夹中,然后执行完所有的程序后自动删除。 我所验证的操作是,将其复制出来(按照上面的shell脚本),然后检查,上传到我们的服务器》
    这里不是太明白,POST - Integration Scripts执行时还未在IPA_PATH会生成ipa那怎么复制到其它文件夹

    Xcode Server持续集成

    Xcode Server持续集成 标签 : iOS XcodeServer 持续集成 作者 : iOS Team 高祥 一、为什么要持续集成 在App开发周期中, 需要不断...

  • 120
    Swift 算法实战之路:链表

    上期我们探讨了使用Swift如何破解数组、字符串、集合、字典相关的算法题。本期我们一起来讲讲用Swift如何实现链表以及链表相关的技巧。本期主要内容有: 链表基本结构 Dum...

  • 120
    Swift 算法实战之路:数组,字符串,集合,与字典

    上次讲解了基本的语法和一些Swift的小技巧。这期我们来看几个最基本的数据结构:数组,字符串,集合和字典。 数组 数组是最基本的数据结构。Swift中改变了以前Objecti...

  • Runtime在实际开发中的应用

    前言 本文并不是Runtime原理从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍在实际开发中如何使用Runtime解决相应的问题, 具体的应用在之前的两...