简介

[UInt8]是Swift中的数组类型,也是作用比较特殊的一种数组类型, 常用于底层交互与内存操作与管理。如: 字符串编解码, 充当字节缓冲区等等

字符串编解码

  • [UInt8](或[Int8])转 String

String有对应的直接从[UInt8][Int8]转换成String的构造函数

1
2
3
4
5
6
/// "这是一个字符串" 的utf8编码
let bytes: [UInt8] = [232, 191, 153, 230, 152, 175, 228, 184, 128, 228, 184, 170, 229, 173, 151, 231, 172, 166, 228, 184, 178]
/// 转换成字符串
if let msg = String(bytes: bytes, encoding: .utf8) {
print(msg)
}
阅读全文 »

1. 下载SFML的SDK

进入SFML官网的下载页下载最新稳定版的SFML SDK

选择对应的版本后,找到如下的下载链接:

下载完成后解压到指定目录

2. 安装SFML SDK的头文件和库文件

frameworks

  • 将解压目录下的Frameworks拷贝到系统目录下的 /Library/Frameworks/System/Library/Frameworks也可以, 但不建议,这个是系统相关的框架)
阅读全文 »

异步+超时等待的C++实现与应用

问题描述

在C++开发过程中,我们最常用的编程模式还是同步编程。原因很简单:

  • 流程简介明了,能明确知道程序的步骤流程
  • 作用域简单,能够更好的控制作用域内对象的生命周期
  • 历史原因, C++11才有的lambda表达式,是的异步编程的复杂度降低, 在此之前都比较复杂

有了C++11以后,异步形式的接口越来越多,最基本就是 std::thread, std::async之类的接口

阅读全文 »