首页
学习
活动
专区
工具
TVP
发布

大壮

专栏成员
39
文章
37708
阅读量
34
订阅数
iOS 自动打包 - fastlane (二)
.env 是非常简单的配置文件,简单到什么程度呢? 它只支持一维K/V格式的配置项,而且 key 和 value 都只能是字符串。
大壮
2018-09-19
8920
iOS 自动打包 - fastlane
1 本文只是fastlane的基本使用. 2 使用fastlane前,确保你已经可以使用Xcode手动打包成功(说明你已经配置好证书)
大壮
2018-09-19
1.2K0
UIKit框架 - TextKit
一. TextKit 架构 TextKit 架构.png 看图就已经知道底层就是Core Text,苹果可能感觉Core Text比较难用,在iOS 7时发布了TextKit. 二.Text Kit
大壮
2018-06-19
1.1K0
RunLoop
RunLoop 的概念 一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,通常的代码逻辑是这样的: function loop() { initialize(); do { var message = get_next_message(); process_message(message); } while (message != quit); } OSX/iOS 系统中,提供了两个这样的对象:NSRunLoop 和 CF
大壮
2018-06-19
4710
iOS GCD定时器
定时器需求 先说需求我们需要一个定时器,包含开启,暂停,恢复,关闭。线程安全 并且不需要管理他的内存,无论在什么状态只要持有他的self释放了,这个定时器也要跟着释放。 约定 当定时器 开启后 只可以 暂停 和 关闭 当定时器 关闭后 只可以 重新开启 当定时器 暂停后 只可以 恢复 当定时器 恢复后 只可以 暂停 和 关闭 注意事项 1. dispatch_source_set_event_handler 回调是一个block,所以很容易会出现循环引用问题。 使用的时候记得加__weak 2.关于
大壮
2018-06-19
1.4K0
iOS block的一些理解和注意点
block的定义:带有自动变量(局部变量)的匿名函数。 一.block作为参数使用时应该使用copy来修饰。 原因1:当用weak,assign修饰block属性时,block访问外部变量,此时block的类型就是栈(stack)block。保存在栈中的block,当block所在函数方法返回结束,该block就会被销毁。在其他方法内部调用该block,就会引发野指针错误EXC_BAD_ACCESS。 原因2.当使用copy,strong修饰block属性时,block访问外部变量,此时block的类型时堆
大壮
2018-06-19
1.1K0
iOS视频(基础篇)-YUV
YUV简介 YUV是一种颜色编码方式,跟我们熟悉的RGB同样用户与编码颜色的一种数据格式。彩色图像常见的格式有RGB,YUV,CMYK等等。 YUV的存储方式 我们都知道RGB是按照Red,Green,Blue三原色来表示彩色图像的。 YUV中的Y代表“灰度值”. UV代表“色度值”. 简单说下YUV的历史原因方便记忆,YUV产生与黑白电视和彩色电视的过渡时间,使用YUV格式可以兼容黑白电视信号,对于黑白电视只需要使用Y值就可以了。更重要的是YUV相对于RGB占用的带宽非常小,并且RGB和YUV可以互相
大壮
2018-06-19
1.2K0
iOS直播(基础篇)-rtmpdefine NALU_TYPE_SLICE 1define NALU_TYPE_DPA 2define NALU_TYPE_DPB 3define NALU_TYPE_
首先我们获得h264的流,在监听里,我们通过参数可以获得RTMP包 IStreamPacket,调用getData()方法直接获得包数据 放入IOBuffer。以下是提取并修改数据存成h264文件的步骤 添加监听 IStreamListener 通过IOBuffer的put函数将每次获得的包数据放入新的IObuffer 在流结束时将IOBuffer存成文件 用工具,如UltraEdit打开文件,查看里面的数据并分析 根据分析结果修改程序,提取h264视频文件所需的数据并存储 1.RTMP协议 RTMP协议
大壮
2018-06-19
7480
iOS音频(基础篇)-常用的音频格式
PCM格式 PCM属于编码格式,PCM是经过话筒后直接得到的未经压缩的数据流 数据的大小 = 采样率 * 采样位数 * 声道 * 秒数 / 8 采样率一般是:22K或者是44K 位数一般是:8位或者16位 声道一般是:双声道或者单声道 PCM是一串由多个样本值组成的数据流,本身没有任何头信息或者帧的概念。只有一段PCM数据是没有办法知道它的采样率的信息的。 WAV格式 WAV是封装格式,里面本身可以存放多种编码格式,不过一般都存放PCM数据。 WAV文件是由“WAV文件头”和“WAV文件体”组成
大壮
2018-06-19
3.2K0
iOS runtime(理论篇)
一.从objc_msgSend开始说 [receiver message] //会被编译器转化为 objc_msgSend(receiver, selector) 所以当我们调用一个方法时,会执行的过程大致如下: 1.rutime系统会把方法调用转化为消息发送,并且把方法的调用者,和方法选择器,当做参数传递过去。 2.方法的调用者会通过isa 指针来找到所属的类,然后在 cache 或者 methodLists 中查找该方法,找得到就跳到对应的方法去执行。 3.如果在类中没找到该方法,则通过sup
大壮
2018-06-19
4120
iOS runtime(基础篇)
Objective-C作为一门动态编译语言,会将编译和连接时要做的事情推迟到运行时。这代表着OC语言不仅仅需要一个编译环境,同时也需要一个运行时系统来执行编译好的代码。 也可以这样理解:“运行时系统(runtime)扮演的角色类似Objective-C语言的操作系统,Objective-C基于该系统来工作”。 一.静态语言和动态语言的区别 1.静态语言如下 #include < stdio.h > int main(int argc, const char **argv
大壮
2018-06-19
5360
iOS 内存管理的理解分享(理论篇)
首先说下为什么需要深入理解iOS 的内存管理. 苹果已经把好多需要管理内存的地方,通过内部的方法已经帮我们管理好了,平常开发中基本不需要开发管理内存的创建和释放。但是还是有很少的一些情况导致内存的泄漏和内存的异常,所以平常开发我们可能用不上,但是还是要了解内存管理来解决这些不多但是棘手的问题。 内存管理的思考方式 1.自己生成的对象,自己所持有 2.非自己生成的对象,自己也能持有 3.不再需要自己持有的对象时释放 4.非自己持有的对象无法释放 1.能自己生成对象并且自己持有的方法有: alloc
大壮
2018-06-19
5650
iOS 相机实时美白,磨皮,双边滤波、Canny边缘检测和肤色检测(实战篇)
基于GPUImage的人脸磨皮、美白、提亮的美颜滤镜 GPUImageBeautifyFilter是一个自定义的美颜滤镜,可以用来处理实时视频流或者是静态图片 主要原理是双边滤波、Canny边缘检测和肤色检测 Sample Code GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptur
大壮
2018-06-19
1.4K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档