静态区析构时引发的线程安全 背景 给openssl 1.0.2 是非线程安全的,需要CRYPTO_set_locking_callback设置函数来控制加锁和解锁.examp...
静态区析构时引发的线程安全 背景 给openssl 1.0.2 是非线程安全的,需要CRYPTO_set_locking_callback设置函数来控制加锁和解锁.examp...
@大大东 和正常创建文件夹一样。 如果想弄子header需要配置 modulemap文件 类似于这样的写法。
// module.modulemap 文件
module OCClass {
// headers.h 和 module.modulemap 必须在同一group下,否则需要配置 `header "/??/headers.h"`到指定位置
header "headers.h"
export *
// 导入目录Sub下的所有文件.这样更方便不用在headers.h中一一声明了,直接递归带入所有
umbrella "Sub"
module * { export * }
//或者通过指定 子module的方式配置
explicit module A {
header "A/A.h"
export *
}
explicit module B {
header "B/B.h"
export *
}
}
混编framework实践开篇 在开发中,由于某些原因不开源代码,我们常常将其制作成framework来隐藏源代码。 除此之外我们还会遇到OC、Swift混编的情况,又或者是遇到一些很老,non-mo...
开篇 在开发中,由于某些原因不开源代码,我们常常将其制作成framework来隐藏源代码。 除此之外我们还会遇到OC、Swift混编的情况,又或者是遇到一些很老,non-mo...
经测试 strongSelf并不能延迟vc的释放 移除kvo也会导致崩溃, 不知博主测试过没有
「解答疑惑二」 的内容都是错的
一.gif格式主要分块 (1) 控制块:控制块包含有用来控制数据流(Data Stream)或者设置硬件参数的信息,其成员包括:GIF文件头(Header)逻辑屏幕描述块(L...
苹果APP验证原理(1)[https://www.jianshu.com/p/e61907c08d12] 接着上一篇双向签名之后有了上面那个流程后,看似安全了,可是他真的完美...
双向签名: 手机和苹果服务器还有开发人员的MAC电脑,他们一共维护着2对公私钥,利用这两对公私钥分别完成双向签名与验证,从而已到达苹果服务器对苹果手机里的appstore的控...
//不用返回值的函数
#define KVAR_VOID(name,...) void(^name)(__VA_ARGS__)
//待返回值的函数
#define KVAR(name,obj,...) obj(^name)(__VA_ARGS__)
我想到的是可以分情况拆细一点,比如定义函数时候的宏的写法,实现函数的时候宏的写法, 那个是为了照顾所有情况弄了一个通用写法。
像swift一样书写OC代码OC链式编程实践链式编程特点 链式编程 = 点语法 事物 串联 同样的hello word代码 OC和swift调用函数时候最大的区别就是swift回归了通用写法,利用了点语法传参.而OC则...
链式编程特点 链式编程 = 点语法 事物 串联 同样的hello word代码 OC和swift调用函数时候最大的区别就是swift回归了通用写法,利用了点语法传参.而OC则...
原理 注册一个中间类KVO_xxx继承自要观察的类,通过isa-swizzling将xxx类的isa指像新的的类KVO_XXX. 并且动态给新类重写setter方法,以达到属...