iOS梦工厂

iCocos——不战胜自己,何以改变未来!

iOS开发——常用功能代码集锦(友秀篇)

| Comments

本次总结,是因为一次上线App被拒之后的冲动,因为有一个功能代码自己之前经常写,但是写多了就快,搞得手速练得超快(不要想污咯哦😂),所以写的时候就没有多想,也没有找找之前的代码,结果导致悲催的结局。

之前没有整理过项目中遇到或者写过,或者经常要用的代码,可能觉得多写几遍就没事了,或者网上一找就有了。可是事实并非如果,首先,网上找的永远不是你的。其次,写得再多还是有粗心或者注意不到的地方。最后,整理成自己的能最快速度的找到并实现,提高效率。何乐而不为呢?

好了,废话不多说,理论也没有,大部分只要两个操作:copy-paste。有些还是需要做小小的改动的,根据项目需求。

iOS装逼篇——AOP编程

| Comments

实现原理

  • 用Objective-C强大的runtime.

我们知道当给一个对象发送一个方法的时候, 如果当前类和父类都没实现该方法的时候就会走转发流程

动态方法解析 -> 快速消息转发 -> 标准消息转发

玩转iOS10+Xcode8适配

| Comments

最近因为公司App在iOS10上出现很多问题,结果花了一天时间适配了一下,其中也遇到了不少坑,有些网上直接有方法,但是有些却需要细心琢磨。这里整理了一下。

其中有两个比较麻烦的

  • 1:关于导航栏的适配

    • 当导航栏是透明或者半透明的实现,显示不正常,全白。
  • 2:关于tabBar的适配

    • tabbar中第一个子控制器的Item重复出现

下面一个个整理了一下!

最新书单

| Comments

2016年-2017年书单

总结了一下,2016年,这一年来所看的书和2017年计划所要看的书,后面的文章中会给出相关介绍并且说明我为什么会选择这些,同时以后也会时常回顾这些东西。

如果遗漏或者增加的后面会继续补充。

音视频编解码技术

| Comments

目录

  1. 音频编解码:AudioToolbox
  2. 视频编解码:VideoToolbox
  3. 总结

视频编解码:VideoToolbox

关于H264

H.264是目前很流行的编码层视频压缩格式,目前项目中的协议层有rtmp与http,但是视频的编码层都是使用的H.264。 在熟悉H.264的过程中,为更好的了解H.264,尝试用VideoToolbox硬编码与硬解码H.264的原始码流。

H.264组成

1、网络提取层 (Network Abstraction Layer,NAL)
2、视讯编码层 (Video Coding Layer,VCL)

MVVM简单实战篇

| Comments

前言

由于之前一直使用MVC,而且在慢慢的开发中确实发现了不少关于MVC中存在的缺陷问题,前段时间试着使用MVVM在项目中去实战一下,发现缺点用着挺爽,他不想MVP那么复杂,也不会像MVC那么高耦合。

所以我打算以后再项目应用中尽量使用MVVM,这里只是简单的整理了一下代码!

M:Model中定义对应的模型属性

@property (nonatomic, copy) NSString *movieName;

@property (nonatomic, copy) NSString *movieTime;

@property (nonatomic, copy) NSString *movieDetail;

@property (nonatomic, strong) NSURL *movieURL;

直播-原理篇

| Comments

前言

本系列文章引自一个朋友(讲师)的精华:袁峥Seemygo

一、个人见解(直播难与易)

直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。

直播-iJKPlayer

| Comments

demo:iCocosIJKPlayer

网上讨论比较多并且支持Android/iOS的项目

Vitamio
IJKPlayer

首先说下Vitamio目前可以拿到的版本是4.20,商业使用需要付费。

这里只介绍IJKPlayer,为什么?用了你就知道了!

直播-H264-ACC-FLV😂总结

| Comments

H.264原理

H.264原始码流(又称为“裸流”)是由一个一个的NALU组成的。他们的结构如下图所示。

其中每个NALU之间通过startcode(起始码)进行分隔,起始码分成两种:0x000001(3Byte)或者0x00000001(4Byte)。如果NALU对应的Slice为一帧的开始就用0x00000001,否则就用0x000001。

H.264码流解析的步骤就是首先从码流中搜索0x000001和0x00000001,分离出NALU;然后再分析NALU的各个字段。本文的程序即实现了上述的两个步骤。