非专业程序员

努力做专业的事!

Typora激活

Typora激活

参考了网上关于Typora的激活方式,修改hasActivated="true"==e.hasActivated为hasActivated="true"=="true",在新版本(V1.11.7)已经不生效,研究了下发现另外一种规避方式,本文记录下。 MacOS上找到:/Applications/Typora.app/Contents/Resources/TypeMark/page-dis...

一文读懂字符、字形、字体

Character、Glyph、Font的区别

一、引言 什么是Character?什么是Glyph?Character和Glyph是否一一对应?我们常说的Font又包含哪些东西?如果要自己实现一套文本的分词、测量和布局,又需要理清楚哪些概念?ascent、descent、lineHeight之间的关系是怎么样的? 本文将尽量以简洁易懂的方式来解释以上问题,也可以提前Mark起来,作为日后的速查手册。 二、Character Ch...

Text Handling

Text Handling

MacOS上系统字体路径一般为/System/Library/Fonts/,可以看到有ttc、ttf,有什么区别 .ttf (TrueType Font) 单字体文件 包含一整套字体(一个 font),...

第一个Flutter应用

Flutter环境搭建、应用编写与构建

一、环境搭建 添加Flutter镜像: export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn 下载Flutter SDK:https://docs.flutter.cn/install/archive 添加Flutte...

一文读懂字符与编码

介绍ASCII、Unicode、UTF编码等概念

一、字符/Character 对用户可见的“一个字符”,通常是我们在屏幕上看到的一个字母、数字、emoji 或组合字符。 比如:a、é、👨‍👩‍👧‍👦 二、字符编码标准/字符集 字符编码标准定义的是如何将字符映射到唯一编码,常见的字符编码标准比如ASCII、Unicode、GBK等 2.1 ASCII ASCII(7位)定义了 128 个字符的唯一编码,包括数字0到9、小写字母a...

虚拟内存

操作系统之虚拟内存

前言 虚拟内存算是操作系统中比较重要的一部分了,内容也很多,早在看操作系统相关书籍的时候就有想要总结这一部分,但是功力不够,总感觉串不起来;经过秋招这几个月对基础知识的回顾,感觉对虚拟内存这一部分有了自己的一个认识和体系,遂趁这个机会述以成文。 正文 一. 背景 在计算机硬件体系结构中,总有这样一种规律:性能越好,价格越高;为了中和性价比,在计算机硬件体系中多采用逐级...

iOS核心动画高级技巧Tips

iOS核心动画重点摘要

前言 iOS核心动画高级技巧摘要 正文 一. 图层树 和UIView最大的不同是CALayer不处理用户的交互;CALayer并不清楚具体的响应链,即使它提供了一些方法来判断是否一个触点在图层的范围之内 每一个UIview都有一个CALayer实例的图层属性 UIView没有暴露出来的CALayer的功能: ...

AutoLayout总结

iOS布局基础

前言 AutoLayout总结 正文 一. 布局方式与背景 在开始介绍AutoLayout之前,需要先介绍一下iOS中的布局方式;iOS中主流的界面布局方式主要有手写代码布局,xib布局,storyboard布局;笔者更喜欢的还是手写代码的方式,一个可能与笔者之前Android经验相关(因为Android中多是使用手写xml`的方式布局,另一个是,对于多人合作而言,手写代码其...

iOS疑难点

iOS疑难点总结,不定期更新

前言 iOS疑难点总结,部分摘自参考链接 正文 self.var还是_var? 在iOS中常见到如下写法: @interface Demo () @property(nonatomic, strong) NSString *name; @end @implementation Demo - (void)test { _name = @""; // se...

iOS多线程与网络

iOS多线程与网络相关

前言 iOS多线程编程各种方式总结 正文 一. 概述 iOS中多线程的实现方式有如下四种: 本文主要总结常用的两种方式 二. GCD 2.1 GCD概述 GCD即Grand Central Dispatch,是苹果公司为多核的并行运算提出的解决方案,能自动合理地利用多核CPU(比如双核、四核),同时还能自动管理线程的生命周期(创建线程、调度任务、销毁线程),不...