位和字节的关系

位(bit)

位是计算机内部数据存储的最小单位,每一位只可以表示0和1两种状态。比如10就有两个二进制位。

Read more   2020/9/10 posted in  iOS底层

[iOS底层]-alloc和init底层逻辑

  1. [iOS底层]-如何去探索iOS的底层源码
  2. [iOS底层]-alloc和init底层逻辑
  3. [iOS底层]-isa分析

alloc流程分析

源码分析alloc流程

  • 下载objc4源码,我们就可以看到alloc方法的实现了。
+ (id)alloc {
    return _objc_rootAlloc(self);
}
Read more   2020/9/9 posted in  iOS底层

[OpenGL]纹理

纹理

纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是墙纸,当你把墙纸贴到白色的墙上,这样你的墙就有各种图案和花纹了。列如我把下面这个三角形贴上墙砖的纹理,它看起来就有墙砖的外表了。

Read more   2020/8/28 posted in  音视频

[OpenGL]变换

变换方案

我们在OpenGL中对物体进行变换,可以尝试对所有顶点进行变换计算,得到变换后的顶点数据,并且重新渲染,得到移动后的位置。但是这样非常繁琐,而且顶点数据一多,我们的计算量将超级大。通常我们更多的是采用矩阵(Matrix)进行变换处理,在介绍矩阵前,我们先了解一下向量。

Read more   2020/8/26 posted in  音视频

[OpenGL]混合

混合


如上图所示,绿色色块有一定透明度,红色色块在移动到绿色色块下时,重叠部分的颜色进行了混合,变成了一个比较脏的颜色。混合功能在OpenGL中默认是关闭的,我们需要开启GL_BLEND来启用混合功能:

glEnable(GL_BLEND);
Read more   2020/8/21 posted in  音视频

TestFlight 不可用,TestFlight 无法接入 App Store Connect。 请稍后重试。

问题描述

最近重新打开TestFlight,突然出现此BUG,一直提示连接失败。

Read more   2020/8/21 posted in  BUG记录

[OpenGL ES]绘制一张图片

流程说明


使用OpenGL绘制一张图的基本流程如下:

Read more   2020/8/18 posted in  音视频

[OpenGL]隐藏面消除解决方案

隐藏面消除
观察上面的这个甜甜圈,我们会发现它在旋转的时候会出现阴影,这是因为我们在渲染的时候把对观察者不可见的面也渲染了,对于不可见的部分,应该尽早丢弃,比如在一个不透明墙壁后面的物体就不应该渲染。这种情况我们叫做隐藏面消除

Read more   2020/8/1 posted in  音视频

[OpenGL]固定存储着色器和图元连接方式

OpenGL渲染架构

  1. Client是客户端,Server是服务端,Client的所有操作都是在CPU中进行,Server的所有操作是在GPU中进行。
  2. Client主要任务是APP通过调用OpenGL的API,提供Server所需要的数据,包括Texture DataUniformsAttributes
  3. Server通过顶点着色器进行坐标数据处理,再经过图元装配光栅化,传给片元着色器,最后再进行渲染。
Read more   2020/7/24 posted in  音视频

[OpenGL]案例2-使用键盘方向键控制一个正方形移动

上一篇文章我们已经知道如何在屏幕上绘制一个简单的图形,这次我们给图形加上一点交互,根据键盘方向键进行相应的移动和旋转。效果如下:键盘控制四边形移动旋转

Read more   2020/7/18 posted in  音视频

[OpenGL]案例1-使用OpenGL绘制一个三角形

几个重要的库

OpenGL库

Read more   2020/7/16 posted in  音视频

CPU和GPU简介

CPU和GPU的区别

CPU和GPU在设计上有很大的不同,CPU需要有很强的通用性来处理各种不同类型的数据,同时又要处理大量的逻辑判断,处理各种事件的响应和流程控制,分支跳转和中断处理。GPU主要用来处理类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
CPU

GPU

Read more   2020/7/9 posted in  音视频

[OpenGL]音视频处理中的专业术语

框架说明

  • OpenGL: 跨编程语言和跨平台的编程图形程序接口,是一种协议。
  • OpenGL ES:OpenGL的子集,针对手机和嵌入式设备设计。
  • DirectX:Windows的多媒体处理框架,不是跨平台的,可以处理显示部分、声⾳部分、输⼊部分和⽹络部分。
  • Metal:是苹果为了解决3D渲染推出的框架,暂时不能跨平台,苹果底层都改用Metal了。
  • OpenCV:主要功能是图像识别(人脸识别/身份证识别),现在和人工智能结合使用的场景比较多。
Read more   2020/7/3 posted in  音视频

CDN: trunk Repo update failed - 2 error(s)

报错信息

在执行pod trunk push LJTool.podspec时,遇到如下错误

[!] CDN: trunk Repo update failed - 2 error(s):
CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/5/e/f/DarkModeKit/0.3.0/DarkModeKit.podspec.json Response: Couldn't connect to server
CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/5/e/f/DarkModeKit/0.4.0/DarkModeKit.podspec.json Response: Couldn't connect to server
Read more   2020/5/26 posted in  BUG记录

安装oh my zsh失败: 连接 raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... 失败

问题描述

根据官网的安装指令

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

然后就会遇到如下错误

正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0
正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... 失败:Connection refused。
Read more   2020/5/26 posted in  BUG记录 iOS开发

数据结构和算法基础

数据结构

名词解释

  • 数据
    数据是对客观事物的符号表示,包含有多个数据对象。

  • 数据元素
    数据元素是数据的基本单位,在程序中通常作为一个整体来进行处理。比如在图书管理系统中,一本书的信息就是数据元素。

  • 数据项
    数据项是数据的不可分割的最小单位。比如一本书有书名,作者名,出版社等,这些就是数据项。一个数据元素通常有多个数据项。

  • 数据对象
    数据对象是性质相同的数据元素的集合。比如图书管理系统,管理的一个图书馆的所有图书,这个图书馆就是一个数据对象。

    通过上面的图可以很直观的看到他们之间的关系。

Read more   2020/4/12 posted in  数据结构和算法