240 发简信
IP属地:北京
  • 120
    iOS HTTPDNS集成,结合AFNetwork进行“ip直连”

    本期是通过NSURLProtocol拦截的方式替换ip,包括SNI的处理。后期有时间会有一章通过hook网络框架AFN的方式,这种方式也无需改变AFN源码,包括在HTTPS证...

  • 120
    iOS触摸事件全家桶

    好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是已经被响应链、手势、target-action这一系列响应触...

  • iOS读写安全方案

    同一时间,只能有1个线程进行写的操作 同一时间,允许有多个线程进行读的操作 同一时间,不允许既有写的操作,又有读的操作 上面这样的场景就是典型的“多读单写”,经常用于文件等数...

  • 这个操作也太秀了。666

    iOS模拟器下载和安装

    是否觉得Xcode->Preferences->Components中的模拟器下得特别慢?而且还经常中断,然后又得重新下载?其实有一种简单的方式获取模拟器的下载链接,然后通过...

  • 博主请教个问题。
    “在 ARC 中,捕获外部了变量的 block 的类会是 NSMallocBlock 或者 NSStackBlock,如果 block 被赋值给了某个变量,在这个过程中会执行 _Block_copy 将原有的 NSStackBlock 变成 NSMallocBlock;但是如果 block 没有被赋值给某个变量,那它的类型就是 NSStackBlock;没有捕获外部变量的 block 的类会是 NSGlobalBlock 即不在堆上,也不在栈上,它类似 C 语言函数一样会在代码段中。”
    这段文本里说 “但是如果 block 没有被赋值给某个变量,那它的类型就是 NSStackBlock”,那为什么
    int val = 10;
    typedef void (^blk)(void);
    blk block = ^{
    NSLog(@"%d",val);
    };
    block();
    断点到 block() 时显示的是malloc类型的呢,此处的block 没有被赋值给某个变量,不应该是 Stack 类型的吗,这段没太理解

    iOS中Block的用法,举例,解析与底层原理(这可能是最详细的Block解析)

    本文Demo传送门:BlockTestApp 【摘要】这篇文章,首先在第1节中介绍Block的定义,以及与C里面函数的对比。然后,第2节介绍实际开发中经常会用到的Block语...

  • 大佬好,文中“乘出来的结果当做 rotl_15() 入参”,右移17那个图片中的第三行和第四行是不是有问题呢 😳

    如何设计并实现一个线程安全的 Map ?(上篇)

    Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScript 中也有 M...

  • 我觉得他想问:通过你的例子发现当某个对象A作为字典的key时,会拷贝一个新的对象A'到字典里作为key,但是NSString的某个对象@"啊啊啊啊"作为key存入字典时,并没有产生新的NSString对象,打印的内存地址是一样的,都是对象,为啥NSString没被新创建一个新的NSString对象 @DevHuangjb

    iOS底层原理:NSDictionary原理

    NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的。 关于hash表 想想一下,我们有一个数组,数组长度是100个,现在的需求是:给...