240 发简信
IP属地:陕西
  • 既然局部变量会被闭包捕获,然后在堆上开辟内存存储,改捕获的变量就是改堆内存的变量,那为什么原本的局部变量也会跟着变为2了呢?

    Swift进阶-闭包

    Swift进阶-类与结构体[https://www.jianshu.com/p/347bafbb3cf8]Swift-函数派发[https://www.jianshu.com...

  • 最后一张图,Array不是结构体嘛,还有引用计数?

    iOS-Swift-汇编分析String、Array底层

    一. 汇编分析String底层 Mach-O文件是iOS的可执行文件,我们平时写的代码都在Mach-O,所以我们窥探Mach-O文件,就相当于窥探内存了(因为Mach-O文件...

  • @码小菜 没有,就打印的prefix,使用withUnsafePointer(to: &subStr) { print($0) }打印的地址,打印结果分别是0x0000000100014510
    0x0000000100014520,有没有可能是base首地址与子串的首地址有差异的原因?

    Swift:与OC混编

    目录一,条件编译二,KVO/KVC三,Swift调用OC四,OC调用Swift五,字符串六,多线程 一,条件编译 1,代码标记 2,条件编译 3,信息打印 4,版本检测 5,...

  • perform afterDelay函数并不是得在主线程才能执行,而是perform afterDelay延时函数的延时计时是内部创建NSTimer实现,而NSTimer依赖于RunLoop,而主线程RunLoop默认开启,子线程RunLoop不会默认开启,所以要在子线程使用perform 延时函数就需要开启子线程的RunLoop

    Swift之延迟函数

    1.perform(必须在主线程中执行) 2.timer(必须在主线程中执行) 3.Thread (在主线程会卡主界面) 4.GCD 主线程/子线程

  • 使用异步栅栏函数和在同队列加同步任务那里不会死锁啊!我代码试了没有死锁,正常运行

    GCD的栅栏函数的原理及使用

    什么是栅栏函数 在GCD中的栅栏函数有dispatch_barrier_async(异步)和dispatch_barrier_sync(同步),异步不会阻塞当前线程,反之则会...

  • 打印出来Substring的地址和他们的base的地址不一样啊

    Swift:与OC混编

    目录一,条件编译二,KVO/KVC三,Swift调用OC四,OC调用Swift五,字符串六,多线程 一,条件编译 1,代码标记 2,条件编译 3,信息打印 4,版本检测 5,...

  • 最开始那个遍历let mutableArray: NSMutableArray的remove操作并不会crash啊?

    Swift进阶五:结构体

    在swift中,类,结构体,枚举以及闭包捕获变量都可以作为存储结构化数据的方法.但在标准库中,绝大多数类型都是结构体,类和枚举只占很小一部分,并且很多foundation的类...