Posts
一剑霜寒十四州
Cancel

iOS中的异常 要捕获Crash,我们先需要明确几个概念及其之间的关系:硬件异常、软件异常、mach异常、Signal信号,这四种异常概念,自底向上构建了iOS系统的异常处理模型。他们之间的关系如下图所示: iOS中的Crash主要分为Mach Exception、Sinal 和NSException,每一种都处在不同的系统层级上,也有各自不同的捕获方式。 Mach Excepti...

Analysis Warning(依赖分析⚠️) 例:Warning: The Copy Bundle Resources build phase contains this target’s Info.plist file /Users/kylexsun/APP_NAME/Resources/project/Notification_Info.plist. Info.plist文件已经...

背景 在编码过程中,有时候会手误给对象类型的property设置assign修饰符,如果这个指针所指向的对象被系统释放,它不会被自动置nil而是变成野指针,产生crash的风险。 因此我们就需要一个工具能够在开发阶段将这些误用的地方检测出来及时进行修复。 原理 在App运行的时候我们可以通过rumtime来读取每个property的attribute(例如T@"NSString",N...

我们在使用第三方库的时候一般有三种接入方式: 直接把第三方库的源码拖入工程 通过CocoaPods等包管理工具进行引入 通过.a或者.framework静态库引入 前两种情况一般是用于引入开源的项目,比如AFNetworking、SDWebImage;第三种情况一般是用于引入一些不方便开源的SDK,比如微信支付的SDK、百度地图的SDK。 SDK开发注意点 如果我们要...

OpenGL学习笔记(一):在Mac上编译GLFW并配置到Xcode项目 向量 向量最基本的定义就是一个方向。或者更正式的说,向量有一个方向(Direction)和大小(Magnitude,也叫做强度或长度)。如果一个向量有2个维度,它表示一个平面的方向,当它有3个维度的时候它可以表达一个3D世界的方向。 下面你会看到3个向量,每个向量在2D图像中都用一个箭头\((x, y)\)表示。...

在天朝要做一名合格的程序员,翻墙上Google是必备技能。我之前有写过一篇文章来教大家搭建自己的翻墙服务器,里面关于VPS推荐的部分已经过时了,但是操作步骤还是有用的。 但是等你把一切都配置好之后你会发现似乎只有浏览器可以正常访问被屏蔽的网站,常用的一些服务比如git、ssh、npm、terminal、telegram等不是连接出错就是慢的要死,其实这些服务的数据其实根本没有经过我们的代理...

通过HTML的<input>标签调用系统api进行选择 通过下面的代码就可以调用系统的api选择图片 <!-- 选择文件 --> <input type="file"> <!-- 选择图片 --> <input type="file" accept='image/*'> <!-- 选择多张图片 --> <inp...

macOS自带的输入法支持的语言很多,但是词库不够丰富,所以我们一般都会安装搜狗输入法。 搜狗输入法是支持中文和英文输入的,有时候我们处在英文状态,想要切换到中文。如果我们不查看状态栏的输入法状态的话很难判断当前是搜狗的英文输入法还是系统自带的英文输入法。这个时候我一般会直接尝试用快捷键进行切换。 问题在于系统输入法切换的快捷键是Option + Space,而搜狗输入法中英文切换的快捷...

最近准备通过 LearnOpenGL 来学习一下OpenGL,环境配置的教程里面使用的开发工具是 Windows 上的 Visual Studio,而我想使用 Mac 上的 Xcode,在这里记录一下配置的过程。 下载 GLFW 源代码并安装 CMake 首先在GLFW的官网下载源代码 http://www.glfw.org/,然后在 CMake 官网下载 Mac 平台对应的安装包 ht...

最近乔迁新居,媳妇又很喜欢看电视,因此准备买一台电视。 某东上看了一圈之后发现现在的大屏电视基本上都支持4K分辨率。这让我颇感意外,因为现在4K的片源还不是很多,电视直播的信号甚至离1080p也都差的远。但是作为一个追求极致视觉体验的人,看到电视行业能够继续发展也是很欣慰的。 现在互联网电视也是蓬勃发展,某米电视在某东上80万+的评论也充分的证明了这一点。原本我准备直接在某东上直接购买这...