dot_clean 命令清除 macOS 上的隐藏文件
Nov 09, 2022
.DS_Store, _MACOSX 是 macOS 上特有的文件和目录,如果把文件夹打包发到 Windows ,别人就看到这些文件/目录就很奇怪。 dot_clean 是用于清除 . 或者 _ 开头文件的工具,使用比较简单: dot_clean /path/to/you/dir…
Mac 平台上常见的的包管理器的缓存位置
Oct 28, 2022
在 Mac 开发中,常用的包管理工具有三个: Cocoapods Carthage Swift Package Manager 这几个工具不仅支持本地路径,还支持远程 git 仓库连接。 随着使用时间的增加,包管理器积累的仓库代码会…
arc4random_uniform 实现一个简单的概率算法
Oct 28, 2022
arc4random_uniform 是 C 标准库中提供的随机数生成方法,定义在头文件 stdlib.h 中。 arc4random_uniform(n); 可以生成 [0, n) 的随机整数。 概率是指一个随机事件的发生几率,比如说有标号为 0 到 9 的 10 个小…
安装 Windows 11 时绕过 TPM 检查
Oct 28, 2022
Windows 11 安装时必需要求有 TPM 模块,否则就无法安装系统,但这并不是必要的条件。 Windows 内部员工做演示的时候使用的电脑也不满足 TPM 的要求,但还是可以运行 Windows 11…
VSCodium 上安装 Swift 扩展
Oct 27, 2022
VSCodium 是 VSCode 的 Free/Libre 授权版本,只保留了符合 MIT license 协议的组件。 在微软的 VSCode 扩展商店中找到 Swift 扩展:https://marketplace.visualstud…
CMake 设置忽略某些搜索路径
Oct 26, 2022
在 CMake 的 find_* 系列方法中,有时候需要忽略某些前缀的路径,比如说 /opt/local 和 /usr/local 。 CMAKE_IGNORE_PREFIX_PATH 可以设置多个需要忽略的路径前缀,多个路径使用 ; 作为分隔符: cmake -DCMAKE_IGNORE_PREFIX_PATH="/opt/local;/usr/local" ... 如果需要忽…
使用低版本 Xcode 在新版本 iOS 上开启调试
Oct 20, 2022
一般来说,新版本 Xcode 可以在最新版本的 iOS 上调试 App。 如果旧版本 Xcode 需要在新版本的 iOS 上调试,则需要把新版本 Xcode 中的设备支持文件拷贝过来。 以下方法同样…
Swift 在调用 super.init 之前必须初始化变量
Oct 10, 2022
先看一下踩坑的代码: public class MyView: UIView { private var count = 0 public init(count: Int) { super.init(frame: .zero) self.count = count } // 重写 setFrame 方法 override public var frame: CGRect { didSet { let w = frame.width * count } } } 以上示例中,count 属性是在 super.init(frame:) 之…
C++ 11 中的原始字符串字面量(Raw String Literal)
Oct 09, 2022
C++ 11 开始增加了 UTF-16 和 UTF-32 字符串字面量,默认的字符串字面量是 UTF8,三种编码的写法如下: // UTF-8 const char *utf8_string = "abc"; const char *utf8_string2 = u8"abc"; // UTF-16 const char16_t *utf16_string = u"abc"; // UTF-32 const char32_t *utf32_string = U"abc"; 在字…
Swift 5 ABI 和 Module 的稳定性
Oct 02, 2022
Swift 5.0 开始,实现了 ABI 稳定性,意味着同样的源码,即使是使用不同版本的 Swift 编译, 编译后的程序都可以在 Swift 5 Runime 下运行,而不需要要求目标环境的 Runtime 和开发环境…