- 博客(39)
- 收藏
- 关注
转载 React Native通信机制详解
转载:http://blog.cnbang.net/tech/2698/React Native是facebook刚开源的框架,可以用javascript直接开发原生APP,先不说这个框架后续是否能得到大众认可,单从源码来说,这个框架源码里有非常多的设计思想和实现方式值得学习,本篇先来看看它最基础的JavaScript-ObjectC通信机制(以下简称JS/OC)。概览
2017-02-16 10:37:06 358
转载 最快让你上手ReactiveCocoa之进阶篇
转载: 作者:袁峥Seemygo http://www.jianshu.com/p/e10e5ca413b7前言由于时间的问题,暂且只更新这么多了,后续还会持续更新本文《最快让你上手ReactiveCocoa之进阶篇》,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+ReactiveCocoa实战开发。如果喜欢我的文章,可以关注我,微博
2017-02-13 18:40:02 287
转载 最快让你上手ReactiveCocoa之基础篇
转载:http://www.jianshu.com/p/87ef6720a096前言很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章
2017-02-13 18:37:51 421
原创 IOS开发之GCD---dispatch_semaphore
信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大于零,然后线程会减少这个计数。 在GCD中有三个函数是semaphore的操作,分别是: dispatch_semaphore_create 创建一个semaphore di
2017-02-13 15:16:11 509
原创 什么叫做“线程安全”?
个线程访问资源的时候为其加锁,别的线程只有等到该线程释放资源后才能使用,这样做为了防止数据的非正常改变和使用举个例子吧比如说,现在有一篮子苹果,有大有小,然后有一群人要来拿苹果了在线程非安全情况下:所有人一哄而上,变成了抢苹果了,因为大家都想要大的苹果,会发生冲突的在线程安全情况下:把这一篮子苹果放到一个小屋里面,然后锁起来,然后每次只让一个人进去拿,等
2017-02-13 15:14:44 354
转载 即时通讯音视频开发
转载:http://www.52im.net/thread-228-1-1.html《即时通讯音视频开发(一):视频编解码之理论概述》《即时通讯音视频开发(二):视频编解码之数字视频介绍》《即时通讯音视频开发(三):视频编解码之编码基础》《即时通讯音视频开发(四):视频编解码之预测技术介绍》《即时通讯音视频开发(五):认识主流视频编码技术H.264》《即时通讯音视频开发(六
2017-02-13 14:55:31 1905
转载 浅析心跳
转载:http://www.jianshu.com/p/2dbb360886a8首先我们来谈谈什么是心跳简单的来说,心跳就是用来检测TCP连接的双方是否可用。那又会有人要问了,TCP不是本身就自带一个KeepAlive机制吗?这里我们需要说明的是TCP的KeepAlive机制只能保证连接的存在,但是并不能保证客户端以及服务端的可用性.比如会有以下一种情况:某台服务器
2017-02-13 14:49:21 2754
原创 NAT超时介绍
因为 IP v4 的 IP 量有限,运营商分配给手机终端的 IP 是运营商内网的 IP,手机要连接 Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation,NAT)。简单的说运营商的网关需要维护一个外网 IP、端口到内网 IP、端口的对应关系,以确保内网的手机可以跟 Internet 的服务器通讯。大部分移动无线网络运营商都在链路一段
2017-02-13 14:47:04 8221
原创 iOS Audio Unit 的简介
AudioUnit 提供快速、模块化的音频处理,适用于在已下的一些情况:实时的音频I / O(输入和输出),如用于VoIP(Voice over Internet Protocol )应用程序播放合成的声音,如音乐游戏或合成器使用特定功能的audio unit , 如回声消除、混合、音调均衡一种处理链的架构,让音频处理模块组装成灵活的网络。
2017-02-13 14:40:29 639
原创 iOS微信浏览器直接打开App
微信浏览器默认屏蔽了App的Scheme跳转,我们无法直接从微信中跳转至App中。但是采用 Universal Links仍然可以做到跳转配置 Universal Links 可参看苹果文档。这种方案有几个注意点:1 Universal Links 可以由系统来做选择,在短信或其他应用中,常按选择打开方式,若选择Safari打开,则后续的跳转会默认跳Safari2 Un
2017-02-13 14:33:48 3879
转载 iOS常用第三方库之Masonry
原文地址:http://www.cnblogs.com/zhanggui/p/4911780.html一、前言 关于苹果的布局一直是我比较纠结的问题,是写代码来控制布局,还是使用storyboard来控制布局呢?以前我个人开发的时候很少使用代码去写约束,因为太麻烦了。所以最终选择的都是AutoLayout进行布局,然后拖线设置约束。不过好多公司进行iOS开发的时候都会去动态的
2017-02-13 14:30:30 213
转载 iOS学习之Objective-C 2.0 运行时系统编程
转载:https://yq.aliyun.com/articles/32195?spm=5176.100240.searchblog.31.mKTBAu0 导言本主主要内容包括:1、概述2、参考3、运行时系统的版本和平台4、和运行时系统的交互5、消息6、动态方法解析7、消息转发8、类型编码9、属性声明1 概述
2017-02-13 14:27:43 326
转载 h264检测是I帧还是P帧
原文链接:http://blog.csdn.net/zgyulongfei/article/details/7558031今天在网上找了一些资料,知道了如何检测h264中的帧类型,在这里记录下来。首先,贴出nal单元类型定义(图从《新一代视频压缩编码标准H.264》摘录):假设一段h264的码流为:00 00 00 01 41 E6 60……其中的00
2017-02-13 14:25:46 362
原创 FFmpeg中的时间戳
FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视频来
2017-02-13 14:23:25 324
原创 视音频技术笔记,牛人的CSDN
雷霄骅(leixiaohua1020)的专栏视音频技术笔记,牛人的CSDNhttp://blog.csdn.net/leixiaohua1020
2017-02-13 14:19:32 364
转载 iOS中RunLoop机制浅探
转载:https://yq.aliyun.com/articles/39271?spm=5176.100240.searchblog.8.YP0QFWiOS中RunLoop机制浅探一、浅识RunLoop RunLoop这个家伙在iOS开发中,我们一直在用,却从未注意过他,甚至都不从见过他的面孔,那个这个神秘的家伙究竟是做什么的?首先,我们先来观察一下我们的
2017-02-13 12:16:27 259
转载 runtime基础知识
转载:https://yq.aliyun.com/articles/16414?spm=5176.100240.searchblog.66.mKTBAu学习Objective-C的运行时Runtime系统是很有必要的。个人觉得,得之可得天下,失之则失天下。Objective-C提供了编译运行时,只要有可能,它都可以动态地运作。这意味着不仅需要编译器,还需要运行时系统
2017-02-13 12:15:00 268
转载 Objective-C中runtime机制的应用
转载:https://yq.aliyun.com/articles/39261?spm=5176.100240.searchblog.8.mKTBAu一、初识runtime Objective-C是一种动态语言,所谓动态语言,是在程序执行时动态的确定变量类型,执行变量类型对应的方法的。因此,在Object-C中常用字符串映射类的技巧来动态创建类对象。因为OC的动态
2017-02-13 12:10:37 216
转载 I帧,P帧,B帧
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。 简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)P帧表示的是这一
2017-02-13 12:07:05 183
转载 iOS8系统H264视频硬件编解码说明
公司项目原因,接触了一下视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解。该方法比较通用,但是占用CPU资源,编解码效率不高。一般系统都会提供GPU或者专用处理器来对视频流进行编解码,也就是硬件编码和解码,简称为硬编解码。苹果在iOS 8.0系统之前,没有开放系统的硬件编码解码功能,不过Mac OS系统一直有,被称为Video Tool
2017-02-13 12:03:35 612
原创 AudioUnit 基本用法总结
1、描述音频单元AudioComponentDescription desc; desc.componentType = kAudioUnitType_Output; desc.componentSubType = kAudioUnitSubType_RemoteIO; desc.componentFlags = 0; desc.compon
2017-02-13 11:54:40 6161 1
原创 iPhone OS提供的音频单元
音频单元描述转换器单元转换器单元,类型为kAudioUnitSubType_AUConverter,用于音频数据的格式转换。iPod均衡器单元iPod EQ单元,类型为kAudioUnitSubType_AUiPodEQ,提供一个简单的、基于预设的均衡器,可以在应用程序中使用。3D混音器单元3D混音器单元,类型为kAudioUnitSubType_AU3DMixer
2017-02-13 11:53:46 585
原创 Audio Processing Graph完成即時錄音與播放功能
转载:http://www.360doc.com/content/14/0904/08/19175681_406912295.shtmlAudio Processing Graph(AUGraph)完成即時錄音與播放功能iOS中不管是聲音或影像播放、錄音都有提供非常方便的Framework來使用,但這些功能大都只能直接將原來的內容存到檔案或是從檔案中讀取後播
2017-02-13 11:52:12 347
原创 git-config总结
git config —global user.email 'xxxx@xxxx.com'git-config user.name ‘xxxx'git-config user.namegit-config user.email xxxx@xxx.com一般简短的评论用的是git commit -am "xxx"就可以了但是我的代码做了大规模变动之后想
2017-02-13 11:49:14 207
原创 git服务器新增用户总结
Git添加用户(期间要注意要求输入的密码,是新用户密码还是管理者密码): 在新用户机1,新用户要生成密钥对:sudo apt-get install openssh-clientssh-keygen 2,修改公钥名称(用mv就可以了),如xxx.pub 3,将公钥发给管理者 在管理者机1,将gitolite-admin仓库下载git
2017-02-13 11:47:58 3547
原创 objc_setAssociatedObject
iOS中关联对象的简单使用objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)1.被关联的对象,下面举的例子中关联到了UIAlertView2.要关联的对象的键值,一般设置成静态的,用于获取关联对象的值3.要关联的对象的值,从
2017-02-13 11:46:11 704
原创 MVC模式心得
App中一些ViewController的代码行数急剧增多,达到了2,3千行,甚至更多, 确实是很头疼,这个时候就需要MVC的思想帮VC瘦身。 一、开发中常见的现象和缺点 iOS中最常见的一种设计模式就是MVC,但在实际开发过程中,我们因为这样、那样的原因让单纯的ViewController变成了集Model,Controller以及View的一个大集合,这样势必就会导致VC的代
2017-02-13 11:38:44 1116
转载 多线程编程 - NSOperation
转载:http://blog.csdn.net/q199109106q/article/details/8565923一、NSOperation1.简介NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:1> Fo
2017-02-13 11:36:38 232
转载 Block非官方编程指南
转载:http://www.dreamingwish.com/frontui/article/default/block介绍(一)基础.html一、block放在哪里我们针对不同情况来讨论block的存放位置:1.栈和堆以下情况中的block位于堆中:12345678
2017-02-13 11:32:38 178
原创 使用remoteIO获取mic数据
使用remoteIO获取mic数据时容易出现的问题1、使用 AudioUnitRender从麦克风获取数据,代码如下,但是出现50错误。[cpp] view plaincopy//调用render从麦克风获取数据。注意:此处busnumber必须设置为1.因为对remoteio来说,1是input,0是output err = Audi
2017-02-13 11:22:16 914
原创 x264 编译总结
1.编译x264cd H264 然后a.如果编译不上可以单独安装Command line tools, 在终端输入(xcode-select --install),就可以直接安装。b.不同平台的编译命令(armv7, armv7s, arm64)CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc ./conf
2017-02-13 11:20:40 549
原创 pthread_cond_wait
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 一 pthread_cond_wait定义: 函数原型:int pthread_cond_wait(pthread_cond_t *cond,
2017-02-13 11:17:40 595
原创 iOS开发多线程篇—GCD的常见用法
有这么1种需求:首先:分别异步执行2个耗时的操作其次:等2个异步操作都执行完毕后,再回到主线程执行操作 如果想要快速高效地实现上述需求,可以考虑用队列组dispatch_group_t group = dispatch_group_create();dispatch_group_async(group, dispatch_get_global_queue(DISPATCH
2017-02-13 11:15:03 188
转载 OC语言BLOCK和协议
转载:http://www.cnblogs.com/wendingding/p/3709604.html一、BOLCK(一)简介BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行。BOLCK和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样。标识
2017-02-13 11:13:15 197
转载 iOS开发多线程篇—GCD介绍
转载:http://www.cnblogs.com/wendingding/p/3806821.html说明:同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)。同步函数(1)并发队列:不会开线程(2)串行队列:不会开线程异步函数(1)
2017-02-12 19:04:20 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人