请稍侯

使用 Swift Package Manager

使用 Swift Package Manager Swift Package Manager 是一个去中心化的源码管理工具。 创建一个基本的Swift package mkdir SwiftGrabber swift package init --type executable 生成...

macOS/iOS中的I/O多路复用方案kqueue

macOS/iOS中的I/O多路复用方案kqueue XNU内核 Mach+BSD内核 尽管XUN的绝对核心是Mach,但是XUN向用户态提供的主要接口是BSD接口。BSD层是建立在Mach之上,是XNU中一个不可分割的一部分。BSD负责提供可靠的、现代的API。其内容包括: UN...

Mach原语

Mach原语 原语:是由若干条机器指令构成的完成某种特定功能的一段程序。具有不可分割性,执行也必须是连续的,且在执行过程中不允许被中断。 同步原语 Mach IPC架构中的两个重要组件,一个是消息传递机制;另一个是同步机制(synchronization)。而同步机制在根本上是由同步原...

异或的两个常见应用

异或的两个常见应用 异或运算符”∧”也称XOR运算符。它的规则是:若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。 运算 说明 0 ...

文学与文化

文学与文化 现在很多人学习文化,读了几十年的书,对文学与文化这两个概念都没有理解。可能很多人会这样简单的理解,包括我自己以前也这样认为的。以为文学就是文字学,文化就是文字化,以为文学的目的就是学习文字、学会认字读书看报,以为文化的目的就是让大众都能认字读书看报。 其实文学与文化远不是...

2020年还是买了很多书

2020年还是买了很多书 对于不懂的与未知的,最大的幸事莫过于还有很多书可以翻。 2020年还是买了很多书,虽然很多书没有读,或只读了一部分就放在那了,但还是买了很多书。 还有最近经常在翻的几本书,放在一边没拍上,也补上。

2020年印(影)象(响)深刻的大家们

2020年印(影)象(响)深刻的大家们 记得我第一次去上海图书馆时最让我莫名难忘又震撼的是图书馆门前的思想者雕像,到现在还是有一种用言语说不明白的印象深刻。 数说这十年印(影)象(响)深刻的大家们。 十年前的余世维、郎咸平们,五年前的高晓松、罗振宇、宋鸿兵们,他们的思想观念虽然让人有所成...

Fastlane自动打包配置

Fastlane自动打包配置 Fastlane自动打包配置,主要是编辑Fastfile,下面给一个简单的示例,代码如下: default_platform(:ios) platform :ios do desc "Description of what the lane does" ...

开小灶

开小灶 关于开小灶这事,之前看到在一个评选节目上看到马云质问批责一个候选人,在公司替老板上班的时候自己业余也搞了一个小网站的行为。 看后时常在思考对这个问题的价值判断,从人性的角度看也总觉得马云这个批评质问总欠缺些什么。现在仔细一想这就是不准人家开小灶,剥夺个人的私有权力。 如果说...

iOS 中 NSProxy 的特性与应用

iOS 中 NSProxy 的特性与应用 NSProxy 的特性 NSProxy的主要功能,负责把消息转发给真正的target的代理类; NSProxy没有继承NSObject,但是实现了NSObject协议,作为一个抽象类,它没有实现初始化方法,并且会在收到任何它不响应的消息时...

iOS 中常见的内存泄漏

iOS 中常见的内存泄漏 内存泄漏(memory leak):是指申请的内存空间使用完毕之后未回收。 内存溢出(out of memory):是指程序在申请内存时,没有足够的内存空间供其使用。 delegate 变量没声明为 weak 类型; NSNotification没有移...

Json学编程开发——B站直播间

Json学编程开发——B站直播间 B站直播间 直播间地址:https://live.bilibili.com/22683419 或者扫码可直接观看: 本周主要讲: iOS高级开发原理解析 会附带去零散一点知识点: 1.讲日常编程开发,比如Shell、Java,Chrome...

深入理解iOS 中的 Runloop

深入理解iOS 中的 Runloop 我们知道Runloop本质上是一个执行死循环的对象,它跑起来后大多数时候是处于休眠等待状态,是不占用CPU资源的。我们先来看一下它是怎么做到的: 闲等待:在死循环里是如何不占用CPU资源的 所谓闲等待是在一个循环里,CPU不是一直在空转,没有任务处理...

深入理解 iOS 中 GCD 原理

深入理解 iOS 中 GCD 原理 首先了解一下,计算机程序是怎样运行的,然后再具体讲 GCD 相关内容。 当开始运行程序时,首先应把第一条指令所在存储单元的地址赋予程序计数器PC,然后机器就进入了取指阶段; 在取指阶段,CPU从内存中读取的内容必为指令。然后送往数据缓冲寄存器D...

Objective-C当中的Block

Objective-C当中的Block Blocks是C语言的扩充功能,即带有自动变量(局部变量)的匿名函数。 使用clang可以通过添加-rewrite-objc编译选项将含有Block语法的源代码变换为C++的源代码,如用clang -rewrite-objc main.m会生成一个与...

Xcode断点调试与lldb常用命令

Xcode断点调试与lldb常用命令 Xcode断点调试 断点 添加符号断点 我们可以使用方法名作为符号名,添加符号断点。添加符号断点左下角加号,如下图: 添加一个符号名为sayHello的符号断点。 然后,调试运行 编辑断点 添加断点行为,在断点时执行代码 创建条件断...

iOS里load与initialize方法总结

iOS里load与initialize方法总结 +load方法 load方法在main函数执行之前调用,具体调用是在dyld加载类时,在dyld_start之后由dyld调用; OC 运行时初始化时,会通过 dyld_register_image_state_change_han...

C语言中const关键字使用总结

C语言中const关键字使用总结 用const关键字修饰的意义: 只修饰变量,不修饰其他关键字; 被修饰的部分不可变; 但是不会改变变量的作用域和生命周期。 下面用几个例子来说明 案例1: const int *p = &a 复制代码此时 const 修饰的是 ...

iOS中触发离屏渲染的本质原因与场景

iOS中触发离屏渲染的本质原因与场景 当前屏幕渲染(On-Screen Rendering):当前屏幕渲染,CPU、GPU 不停地将内容渲染完成放入frame buffer帧缓冲区中,显示屏幕从 frame buffer中获取内容显示。 离屏渲染(Off-Screen Rendering...