- 博客(21)
- 资源 (2)
- 收藏
- 关注
转载 详解大端模式和小端模式
详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令
2014-04-02 10:34:53 673
转载 [iOS] NSInvocation简单使用
在 iOS中可以直接调用 某个对象的消息 方式有2中一种是performSelector:withObject:再一种就是NSInvocation第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作NSInvocation可以处理参
2014-04-01 10:13:07 596 1
转载 [iOS] performSelectorOnMainThread支持多个参数
iOS 的 NSObject对象提供了一种在不同线程中执行其方法的机制。最常见的是需要在主线程即UI线程中去执行一些方法performSelectOnMainThread:withObject:waitUntilDone:但是这个默认的方法只支持一个参数。performSelector:withObject:withObject:这个不是在主程线中运行的…只能依靠c
2014-04-01 10:11:08 828 1
转载 [iOS]使用Audio Queue Services 播放和录制音频
要在iOS设备上播放和录制音频,苹果推荐我们使用AVFoundation框架中的AVAudioPlayer和AVAudioRecorder类。虽然用法比较简单,但是不支持流式;这就意味着:在播放音频前,必须等到整个音频加载完成后,才能开始播放音频;录音时,也必须等到录音结束后,才能获取到录音数据。这给应用造成了很大的局限性。为了解决这个问题,我们就需要使用Audio Queue Services来
2014-04-01 10:06:15 827
转载 【ffmpeg学习】Tutorial 04: Spawning Threads 将解析线程与视频解码线程分开
环境FFmpeg:2013年9月9日 github master版本SDL:SDL2系统:macos 10.8 64位ffmpeg编译参数:[plain] view plaincopy./configure --cc=clang --disable-everything --enable-libfdk_aac --e
2014-04-01 09:58:15 1073
转载 【ffmpeg学习】利用SDL2.0显示ffmpeg解码出来的数据
http://dranger.com/ffmpeg/tutorial02.html按照里面的代码学习时发现作者使用的SDL1.2已过时,在SDL官网下了SDL2.0版本,发现tutorial02内的SDL_SetVideoMode函数以及SDL_Overlay结构体已经弃用,经过一番google及SDL DEMO的学习,整理出下面可用代码[c
2014-04-01 09:52:14 1089
转载 iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接
如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求。但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候基本上会被苹果Reject. 但是如果你的应用是企业内部发布的或者你只想了解其中的原理,那该文也许对您会有所帮助。一、在iOS中如何应用VOIPVOIP程序需要稳定的网络去连接和它
2014-03-31 13:15:04 1432
原创 iOS 排序算法总结
1.插入排序描述:⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌ 将新元素插入到下一位置中⒍ 重复步骤2~5实现:void InsertSort(int array
2014-03-25 22:26:40 887 1
转载 iOS 7 教程:定制iOS 7中的导航栏和状态栏
注:本文译自Customizing Navigation Bar and Status Bar in iOS 7近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。
2014-03-23 13:05:24 571
转载 如何自定义iOS中的控件
本文译自How to build a custom control in iOS。大家要是有什么问题,可以直接在twitter上联系原作者,当然也可以在最后的评论中回复我。下面先来看看目录:子类化UIControl绘制用户界面绘制背景绘制用户的可操作区域绘制手柄跟踪用户的操作开始跟踪持续跟踪结束跟踪Target-Action模式如何使用自定义控件
2014-03-22 22:31:15 762
转载 iOS系统GCD学习(10):常见的错误
贴几段斯坦福大学关于gcd的代码,这段代码逐步演示了如何修正错误,其中用到的既是串行队列。 1。这个是原始代码[cpp] view plaincopy- (void)viewWillAppear:(BOOL)animated { NSData *imageData = [FlickrFetcher imageDa
2014-03-21 19:13:56 735
转载 iOS系统GCD学习(9):多核心的性能
概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进入相同的工作线程池(除非你的用户队列的目标是主线程,但是为了提高运行速度,我们绝不会这么
2014-03-21 19:09:56 591
转载 iOS系统GCD学习(8):Dispatch Queue挂起恢复和目标指定
Dispatch Queue挂起恢复 dispatch queue可以被挂起和恢复。使用 dispatch_suspend函数来挂起,使用 dispatch_resume 函数来恢复。这两个函数的行为是如你所愿的。另外,这两个还是也可以用于dispatch source。 一个要注意的地方是,dispatch queue的挂起是block粒度的。换句话说,挂起一个queue并不
2014-03-21 19:08:01 1387
转载 iOS系统GCD学习(7):dispatch_once
GCD还提供单次初始化支持,这个与pthread中的函数 pthread_once很相似。GCD提供的方式的优点在于它使用block而非函数指针,这就允许更自然的代码方式。 这个特性的主要用途是惰性单例初始化或者其他的线程安全数据共享。典型的单例初始化技术看起来像这样(线程安全的):+ (id)sharedWhatever{ staticWhatever *whatever
2014-03-21 19:05:12 658
转载 iOS系统GCD学习(6):Dispatch Sources
何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。说的貌似有点不清不楚。我们到底讨论哪些事件类型? 下面是GCD 10.6.0版本支持的事件:[cpp] view plaincopy
2014-03-21 19:01:46 617
转载 iOS系统GCD学习(5):信号量机制
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore,对经常做unix开发的人来讲,我所介绍的内容可能就显得非常入门级了,信号量在他们的多线程开发中再平常不过了。 信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信
2014-03-21 19:00:35 790
转载 iOS系统GCD学习(4):dispatch_group2
dispatch_apply的使用 对于同步执行,GCD提供了一个简化方法叫做dispatch_apply。这个函数调用单一block多次,并平行运算,然后等待所有运算结束,就像我们想要的那样:[cpp] view plaincopydispatch_queue_t queue = dispatch_get_global
2014-03-21 18:56:35 553
转载 iOS系统GCD学习(3):dispatch_group
设想下面的循环:[cpp] view plaincopyfor(id obj in array) [self doSomethingIntensiveWith:obj]; 假定 -doSomethingIntensiveWith: 是线程安全的且可以同时执行多个.一个array通常包含多个元素,这样
2014-03-21 18:54:45 538
转载 iOS系统GCD学习(2):Dispatch Queue
GCD的基本概念就是dispatch queue。dispatch queue是一个对象,它可以接受任务,并将任务以先到先执行的顺序来执行。dispatch queue可以是并发的或串行的。并发任务会像NSOperationQueue那样基于系统负载来合适地并发进行,串行队列同一时间只执行单一任务。 GCD中有三种队列类型:1.The main queue: 与主线程功能相同。实
2014-03-21 15:07:02 562
转载 iOS系统GCD学习(1):介绍
[-]什么是GCD为何使用Dispatch Objects什么是GCD? Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。它是一套低层API,提供了一种新的
2014-03-21 15:00:58 704
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人