- 博客(306)
- 资源 (67)
- 收藏
- 关注
原创 XIB做视图组件
让你的Interface Builder也能够自定义可视化视图。现在的人越来越懒,但是正式这一群越来越来的同学,造就了越来越好用的东西。前戏不要了,直奔主题吧。 必备条件环境XCode6我们在用xib或者storyboard的时候,我们会发现总有一些view希望能够复用的。必须xib或者storyboard中可以嵌套使用就好了。不过现在apple还没有看到这方面的东西。那还有一种就是xib中得in
2015-07-13 14:34:03 1226 2
原创 iOS常见Crash解决方法
常见crash数组越界插入nil对象无法识别的selector其他异常数组越界这里主要由NSArray或者NSMutableArray访问了不在范围内的对象造成的。对于Inmutable数组基本就涉及到一个objectAtIndex:。 NSArray *array = @[@"test"]; id object = array[1];//抛出异常 1.
2015-02-06 16:59:53 1924 1
原创 让RAC支持进度消息
我们在使用RAC的时候,有时候处理一个主消息之外可能还需要其他的辅助消息。比如说,我们在上次图片或者下载的时候。往往除了需要知道结果,还需要过程的进度。简单的做法就是外部自己创建一个subject,然后给具体做事情的模块来手动设置subject的next值了。这是一个经常用的东西,所以我这边参考了AFNetworking+RACExtension中得代码。自己重建了支持进度的signal和subs
2015-01-12 11:35:30 2619 1
转载 nodejs stream 手册
nodejs stream 手册写在前面的话: 如果你正在学习Nodejs,那么流一定是一个你需要掌握的概念。如果你想成为一个Node高手,那么流一定是武功秘籍中不可缺少的一个部分。关于流这个主题,由Node高手substack带来的stream-handbook绝对是经典入门读物之一,其在Github上的star数量以上超过了4500个,足以见其权威程度。本文下面的内容将参考自subst
2014-12-31 15:19:11 943
转载 Why Functional Programming Matters 函数式程序设计为什么至关重要
作者: John Hughes 原文地址:http://www.md.chalmers.se/~rjmh/Papers/whyfp.html此论文作于1984年,作为查麦兹大学的备忘录流传了多年,经过小幅度修订的版本出现于1989年与1990年,即[Hug89]与[Hug90]。此版本基于原查麦兹大学备忘录的nroff源码,为LaTeX做了改动,使其更接近于印刷版本并纠正了少许错误。
2014-12-15 10:50:14 3142 1
原创 RACCommand 有sendError对executionSignals 怎么破
RACCommand 一般我们都是放在ViewModel中,就像是一个Action,由用户或者View/ViewController的。而且很多时候,我们不仅仅需要让这个action执行起来,而且还需要知道执行的结果。这里简单写个demo。@interface ViewModel(RACCommand*)testCommand; @end @implement ViewModel(
2014-12-05 22:03:44 4901
原创 有图像数据了,应该用CGBitmapContextCreate 还是CGImageCreate呢
https://www.evernote.com/shard/s234/sh/7799f2a3-fde0-4b63-8c44-d1c90f945227/123f60439e171aa1fa324932ad70e3a8
2014-06-25 11:12:38 2877
原创 ios Bind绑定
不管是用mvc还是mvvm的架构,我们都需要一点就是model的改变能够及时同步到相关部件中。就类似月观察者模型,在ios中可以通过kvo来完成这样的事情,但是每次都是用这个样的方式,就回让代码混乱。在这里可以采用THBinder在github来完成这个任务。同时我对这个代码进行了一点处理,这样就使用一个简单的宏来完成,不要保存THBinder实例了。#import "THBinder
2014-06-16 14:06:55 3183
原创 ReactiveCocoa的宏
ReactiveCocoa中有好些宏来着,其中用的最多的就式RAC(target,keypath,nilValue)le
2014-04-14 15:01:20 2016
原创 AVAssetExportSession的问题
最近在搞视频的拼接碰到奇葩的问题:使用exportAsynchronouslyWithCompletionHandler怎么都不调用block,搞了2天的时间终于tmd的解决了,但是还是不知道什么原因,啃爹啊! 先说说怎么出这个问题的吧。自己录制了一些视频文件,这个文件的产生是通过AVAssetWriter输出的,并没有使用AVCaptureFileOutputRecordingD
2014-02-21 17:01:28 14143 1
转载 KVO的内部实现
09年的一篇文章,比较深入地阐述了KVO的内部实现。KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。概览这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你第
2014-02-10 15:26:04 944
转载 说说ReactiveCocoa 2
ReactiveCocoa是Github开源的一款cocoa FRP 框架,我在之前的文章里有过介绍(当时还是1.x版本,2.x版本有了新的变化,API也有部分不兼容) 这里再简单地提一下。Native app有很大一部分的时间是在等待事件发生,然后响应事件,比如等待网络请求完成,等待用户的操作,等待某些状态值的改变等等,等这些事件发生后,再做进一步处理。 但是这些等待和响应,并没有一
2014-02-10 15:24:12 8043
转载 Objective-C的动态特性
这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,
2014-02-10 15:23:22 778
转载 ReactiveCocoa与Functional Reactive Programming
什么是Functional Reactive ProgrammingFunctional Reactive Programming(以下简称FRP)是一种响应变化的编程范式。先来看一小段代码a = 2b = 2c = a + b // c is 4b = 3// now what is the value of c?如果使用FRP,c的值将会随着b的值改变而
2014-02-10 15:06:59 1097
转载 instancetype vs id for Objective-C
新的LLVM编译器为我们带来了ARC, Object Literal and Scripting, Auto Synthesis等特性,同时也引入了instancetype关键字。instancetype用来表示Related Result Types(相关返回类型),那么它与id有什么不同呢?根据Cocoa的命名惯例,init, alloc这类的方法,如果以id作为返回类型,会返回类本身
2014-02-07 15:18:39 1300
原创 CGImage 直接到 CVPixelBuffer
从image到CVPixelBuffer需要注意性能,如果使用context的话和使用memcpy都有一样的性能支出,但是使用CVPixelBufferCreateWithBytes这个可以在时间上提高好几个数量级别,这是因为这里没有渲染也没有内存拷贝能耗时的操作而只是将data的指针进行了修改哦。- (CVPixelBufferRef)pixelBufferFaster{
2014-01-23 15:11:12 16753 2
原创 AVCaptureVideoDataOutputSampleBufferDelegate 注意点
AVCaptureVideoDataOutputSampleBufferDelegate 中需要注意对sampleBuffer的使用。如果想将sampleBuffer保留住以便后面使用的话,这里会出现一些问题。如果sampleBuffer时间太长,那么着的delegate就可能会被停止调用的哦。一般你会发现怎么就只有13帧啊。这个在文档中有明确的说明。但是普通的copy根本不起作用。createC
2014-01-23 15:09:06 11388 5
原创 分段录制的实现
分段录制也就是可以暂停之后恢复录制,并且录制结束之后是在同一个文件中。不管video还是audio都是有时间戳的frame,真是因为有时间戳播放器才能有序的进行播放了。因此在分段录制中,只要在暂停的时候记录一下当前的一个时间戳,然后在恢复之后计算一下这之间的时间差,然后在将这个frame写入之前修改一下这个frame的时间戳就行了。原理还是蛮简单的,因此实现也简单的多了。code说明一切,需要的咨
2014-01-23 13:08:10 11371 6
原创 ios xcode5编译ffmpeg
今天编译用xcode5编译kxmovie的代码,其中刚开始就要编译ffmepg。里面有个rakefile脚本文件,怎么都编译不了。首先就是gcc 不能生成可执行文件,网上找了找原因是我机器用的是xcode5,xcode5默认使用的是clang,所以就将gcc的目录进行了修改,还是不行,最后发现需要再extra-cflags 和extra-ldflags中加入-miphoneos-version-m
2014-01-10 17:33:11 5573 3
原创 ios中解析json对象基类
这个是对上面一篇写的一个解析json对象的基类@interface BaseObjectFromJson : NSObject+ (id) objectWithDict:(NSDictionary*)dict withClassName:(NSString*)className;+ (NSArray*) objectsWithArray:(NSArray*)array withCla
2013-11-06 09:27:39 2816 3
原创 nib 加载过程分析以及对File’s Owner的理解
nib loading的过程,这个是app文档里面有说到资源编程指南1. It loads the contents of the nib file and any referenced resource files into memory。将nib文件和其中引用到的资源文件加载到内存中。2.It unarchives the nib object graph data and ins
2013-08-09 11:24:03 9337 1
翻译 Core Animation 基础 笔记
最近在学习CA部分东西,闲在就翻译了一下apple的这个CA的指南的基础部分,有机会再翻译其他的部分。限于水平,翻译不到位或者不足之处请指出。原文地址基于层的绘图模型 多数层并不做任何实际的绘图操作。相反,一个层会抓取你应用所提供的内容并把它缓存再位图中,有时候我们把这个位图称之为后备存储(backing stroe). 当后面你修改这个层的一个属性时,你所做的修改其实是修改了
2013-07-29 11:59:22 2295
原创 自动备份dSYM文件脚本
最原始的sh文件地址再这里http://www.cimgf.com/2009/12/23/automatically-save-the-dsym-files/但是这个sh脚本,不能对debug和模拟器已经没有目录的情况下操作。并且目录的位置也存在一些小问题。所以再这个基础上面,我修改了一下,这样可以保证再任何情况下,都可以正确的备份文件了。echo "starting dsym
2013-07-16 16:39:48 1737 1
转载 开源界的大变化: LLVM Clang libc++ LLDB
近日, LLVM 项目和开发者 Chris Lattner 获得 ACM 颁发的 SIGPLAN 软件系统奖,将这个由 Apple 主导的 BSD 系开源项目推到了开源界的焦点。本文由 comicfans44 撰写,介绍下 LLVM 项目中的两个新组件: libcxx 和 lldb 。首先声明,本文在除去技术上的相关介绍较为准确外,其他内容多为臆测,仅供参考。近期来,apple在llv
2013-06-29 16:39:09 2560
转载 ubuntu下C/C++基本开发环境的配置
sudo cat > /etc/apt/sources.list把下面的东东贴到里面QUOTE:deb http://ubuntu.cn99.com/ubuntu/ gutsy main restricted universe multiversedeb http://ubuntu.cn99.com/ubuntu/ gutsy-security main restricte
2013-01-09 18:20:56 729
转载 控制 22 分钟的会议时间(荐)
控制 22 分钟的会议时间“会议拉锯战”是每个人都头痛的。如何高效的进行会议,相信每个人都希望了解。那么或许这篇文章可能给大家有所启发。没有人因任何的因素喜欢开会。其实很多情况下,大部分的人都认为一些的会议都是在浪费时间。那么,如何剔除会议中那些浪费时间的方面,留下精华部分?让我们尝试下将会议时间压缩到 22 分钟,Nicole 首先提出了这个想法,我个人认为这是目
2012-10-16 14:30:31 798
原创 python写的打包脚本
之前有使用批处理进行前面和打包,感觉好累人啊。所以抽了点时间学习一下python。虽然是第一次接触python,学习之后感觉python比较强大,在很多方面比较像C++。以后大可以使用python代替批处理了。以下是我写的一个签名和打包的代码。这个代码受限于我们公司的签名等流程。不过里面有写文件、ftp、目录、字符串、面向对象的东西,可以作为以后使用的标记。import ConfigP
2012-10-05 21:32:14 2016
原创 boost库json_parser使用
#include #include #include #include #include #include using namespace std;using namespace boost;using namespace boost::property_tree;// json_parse.cpp : 定义控制台应用程序的入口点。//string genera
2012-08-16 18:20:06 5354
原创 windbg 断点 未完
1. config symbol .symfix, .sympath, _NT_SYMBOL_PATHsrv*d:\mysymbols*http://msdl.microsoft.com/download/symbols;cache*d:\mysymbols2.load ext command like sdbgext .load sdbgext
2012-06-20 12:51:12 1554
转载 Umdhtools.exe: 如何使用 umdh.exe 来查找内存泄漏
http://support.microsoft.com/kb/268343用户模式转储堆 (UMDH) 实用程序处理分析 Windows 堆分配特定进程的操作系统。主要针对此实用程序,并与之关联的其他工具用于 Windows 2000 和 Windows XP。单击播放 按钮以查看此流媒体演示。请注意 ACELP ® 编解码器编码视频,您需要安装在可用的免费 ACELP ®
2012-06-16 17:12:58 2485 1
原创 Windbg 分析内存泄漏
1. 首先添加这样的一段代码到头文件中。#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif // _DEBUG#define _CRTDBG_MAP_ALLOC#include #incl
2012-05-07 20:29:01 2555
原创 android源码分析-aapt
aapt就是Android Asset Packaging Tool ,一般在sdk的tools中可以找到,一般是和adb之类的工具在一起。这个工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk)。 也可将资源文件编译成二进制文件。 android的核心代码还没有来得及看呢,这篇我主要是讲述这几天将linux上面的这块代码一直到windows上面的经验。aapt
2012-02-22 17:20:25 8399 5
Compuware Devpartner Studio 9.0.2 Professional 种子和破解文件
2010-11-02
微软过滤驱动内存管理smbios说明等技术文档
2010-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人