2022年9月28日
理论 - LearnOpenGL CN 主页 目录 简介 入门 OpenGL 创建窗口 你好,窗口 你好,三角形 着色器 纹理 变换 坐标系统 摄像机 复习 光照 颜色 基础光照 材质 光照贴图 投光物 多光源 复习 模型加载 Assimp 网格 模型 高级OpenGL 深度测试 模板测试 混合 面剔除 帧缓冲 立方体贴图 高级数据 高级GLSL 几何着色器 实例化 抗锯齿 高级光照 高级光照 Gamma校……
阅读全文
2021年3月29日
前言 作为一名iOS开发者,最近面试被问到了KVO的问题。其实KVO的原理以及runtiem的知识,很早之前就有学习和使用了,但是实现的细节都忘记差不多了,故再此重新梳理一下。 正文 NSKeyValueObserving ,一种非正式协议,通知其他对象的指定属性发生了改变。 简单理解就是,监听一个对象的某个属性是否发生改变……
阅读全文
2020年11月3日
Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。 有些时候我们工程中引用了十分古老的库为MRC模式,这时就需要采用混合模式进行处理 如果你的项目使用的 MRC 模式,要为 ARC 模式的代码文件加入 -fobjc-arc 标签。 如果你的项目使用的是 ARC 模式,要为 MRC 代码文件加入 -fno-objc-arc 标签 添加标签的方法: 打开:你的target -> Build Phases -> Compile Sources……
阅读全文
2020年10月9日
OC 内存管理的基本概念 ###1. 内存管理的基本概念 栈区 stack 堆区 heap heap(堆)是最自由的一种内存,它完全由程序来负责内存的管理,包括什么时候申请,什么时候释放,而且对它的使用也没有什么大小的限制。在C/C++中,用alloc系统函数和new申请的内存都存在于heap段中。 BSS区 来存放没有被……
阅读全文
2018年6月5日
前言 一年一度的 WWDC(苹果全球开发者大会)于北京时间 6月5日 凌晨1点开幕。废话不多说,来看看这次WWDC 都有哪些亮点吧! iOS 12 和 ARKit 2.0 关键词:官方防沉迷最为致命 iOS 12 iOS 12 相较于 iOS 11 并没有太多UI上的变动,刚更新完 bate 版本的 iOS 12,完全感觉不到这是个新系统。 iOS 12 主要是对安全和性能的优化,……
阅读全文
2018年5月5日
安装 xcode-select --install Xcode版本切换 显示当前使用的xocde版本 $ xcode-select --print-path 选择Xcode中的默认版本 $ sudo xcode-select -switch /Applications/Xcode.app……
阅读全文
2018年1月4日
译自 《THE BIGGEST LIE IN JIU JITSU》 最近我看到了一个让我捧腹的柔术笑话。 “柔术的技术是无敌的!” 你可能不想听听下面的内容,但是作为一名柔术教练,我的工作是与你分享我认为的真理,而不是虚假的谎言。所以在这里与你们分享我的见解: 目录 技术不是无敌的 我的见解 一个假设 真实的例子 这个神话是从哪里……
阅读全文
2017年12月26日
前言 这篇博客九月就想写了,因为赶项目拖了到现在,抓住17年尾巴写吧~ 正文 上次看了一篇 《从一道网易面试题浅谈OC线程安全》 的博客,主要内容是: 作者去网易面试,面试官出了一道面试题:下面代码会发生什么问题? 1 2 3 4 5 6 7 8 @property (nonatomic, strong) NSString *target; //.... dispatch_queue_t queue = dispatch_queue_create("parallel", DISPATCH_QUEUE_CONCURRENT); for (int i = 0; i < 1000000 ; i++) { dispatch_async(queue, ^{ self.target = [NSString stringWithFormat:@"ksddkjalkjd%d",i]; }); } 答……
阅读全文
2017年12月19日
前言 由于 Disqus 对于国内网路的支持十分糟糕,很多人反映 Disqus 评论插件一直加载不出来。而我一直是处于翻墙状态的~(话说你们做程序员的都不翻墙用Google的吗😅,哈哈,吐嘈下) 针对这个问题,我添加了Gitalk 评论插件。在此,非常感谢 @FeDemo 的推荐 。 正文 Gitalk 评论插件 首先来看看 Gitalk 的界面和功能: gitalk 使用 Github……
阅读全文
2017年10月4日
DispatchQueue Swift 中,对 GCD 语法进行了彻底改写。引入了 DispatchQueue 这个类。 先来看看在一个异步队列中读取数据, 然后再返回主线程更新 UI, 这种操作在新的 Swift 语法中是这样的: 1 2 3 4 5 6 7 8 9 DispatchQueue.global().async { DispatchQueue.main.async { // 更新UI操作 } } DispatchQueue.global().async 相当于使用全局队列进行异步操作。然后在调用 DispatchQueue.main.async 使用主线程更新相应的 UI 内容。 优先级 新的 GCD 引入了 QoS (Quality……
阅读全文