- 博客(305)
- 资源 (67)
- 收藏
- 关注
原创 XIB做视图组件
让你的Interface Builder也能够自定义可视化视图。现在的人越来越懒,但是正式这一群越来越来的同学,造就了越来越好用的东西。前戏不要了,直奔主题吧。 必备条件环境XCode6我们在用xib或者storyboard的时候,我们会发现总有一些view希望能够复用的。必须xib或者storyboard中可以嵌套使用就好了。不过现在apple还没有看到这方面的东西。那还有一种就是xib中得in
2015-07-13 14:34:03
1353
原创 iOS常见Crash解决方法
常见crash数组越界插入nil对象无法识别的selector其他异常数组越界这里主要由NSArray或者NSMutableArray访问了不在范围内的对象造成的。对于Inmutable数组基本就涉及到一个objectAtIndex:。 NSArray *array = @[@"test"]; id object = array[1];//抛出异常 1.
2015-02-06 16:59:53
2147
原创 让RAC支持进度消息
我们在使用RAC的时候,有时候处理一个主消息之外可能还需要其他的辅助消息。比如说,我们在上次图片或者下载的时候。往往除了需要知道结果,还需要过程的进度。简单的做法就是外部自己创建一个subject,然后给具体做事情的模块来手动设置subject的next值了。这是一个经常用的东西,所以我这边参考了AFNetworking+RACExtension中得代码。自己重建了支持进度的signal和subs
2015-01-12 11:35:30
2717
1
转载 nodejs stream 手册
nodejs stream 手册写在前面的话: 如果你正在学习Nodejs,那么流一定是一个你需要掌握的概念。如果你想成为一个Node高手,那么流一定是武功秘籍中不可缺少的一个部分。关于流这个主题,由Node高手substack带来的stream-handbook绝对是经典入门读物之一,其在Github上的star数量以上超过了4500个,足以见其权威程度。本文下面的内容将参考自subst
2014-12-31 15:19:11
1006
转载 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
3211
原创 RACCommand 有sendError对executionSignals 怎么破
RACCommand 一般我们都是放在ViewModel中,就像是一个Action,由用户或者View/ViewController的。而且很多时候,我们不仅仅需要让这个action执行起来,而且还需要知道执行的结果。这里简单写个demo。@interface ViewModel(RACCommand*)testCommand; @end @implement ViewModel(
2014-12-05 22:03:44
4964
原创 有图像数据了,应该用CGBitmapContextCreate 还是CGImageCreate呢
https://www.evernote.com/shard/s234/sh/7799f2a3-fde0-4b63-8c44-d1c90f945227/123f60439e171aa1fa324932ad70e3a8
2014-06-25 11:12:38
2950
原创 ios Bind绑定
不管是用mvc还是mvvm的架构,我们都需要一点就是model的改变能够及时同步到相关部件中。就类似月观察者模型,在ios中可以通过kvo来完成这样的事情,但是每次都是用这个样的方式,就回让代码混乱。在这里可以采用THBinder在github来完成这个任务。同时我对这个代码进行了一点处理,这样就使用一个简单的宏来完成,不要保存THBinder实例了。#import "THBinder
2014-06-16 14:06:55
3250
原创 ReactiveCocoa的宏
ReactiveCocoa中有好些宏来着,其中用的最多的就式RAC(target,keypath,nilValue)le
2014-04-14 15:01:20
2066
原创 AVAssetExportSession的问题
最近在搞视频的拼接碰到奇葩的问题:使用exportAsynchronouslyWithCompletionHandler怎么都不调用block,搞了2天的时间终于tmd的解决了,但是还是不知道什么原因,啃爹啊! 先说说怎么出这个问题的吧。自己录制了一些视频文件,这个文件的产生是通过AVAssetWriter输出的,并没有使用AVCaptureFileOutputRecordingD
2014-02-21 17:01:28
14431
转载 KVO的内部实现
09年的一篇文章,比较深入地阐述了KVO的内部实现。KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。概览这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你第
2014-02-10 15:26:04
997
转载 说说ReactiveCocoa 2
ReactiveCocoa是Github开源的一款cocoa FRP 框架,我在之前的文章里有过介绍(当时还是1.x版本,2.x版本有了新的变化,API也有部分不兼容) 这里再简单地提一下。Native app有很大一部分的时间是在等待事件发生,然后响应事件,比如等待网络请求完成,等待用户的操作,等待某些状态值的改变等等,等这些事件发生后,再做进一步处理。 但是这些等待和响应,并没有一
2014-02-10 15:24:12
8091
转载 Objective-C的动态特性
这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,
2014-02-10 15:23:22
824
转载 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
1137
转载 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
1335
原创 CGImage 直接到 CVPixelBuffer
从image到CVPixelBuffer需要注意性能,如果使用context的话和使用memcpy都有一样的性能支出,但是使用CVPixelBufferCreateWithBytes这个可以在时间上提高好几个数量级别,这是因为这里没有渲染也没有内存拷贝能耗时的操作而只是将data的指针进行了修改哦。- (CVPixelBufferRef)pixelBufferFaster{
2014-01-23 15:11:12
16920
原创 AVCaptureVideoDataOutputSampleBufferDelegate 注意点
AVCaptureVideoDataOutputSampleBufferDelegate 中需要注意对sampleBuffer的使用。如果想将sampleBuffer保留住以便后面使用的话,这里会出现一些问题。如果sampleBuffer时间太长,那么着的delegate就可能会被停止调用的哦。一般你会发现怎么就只有13帧啊。这个在文档中有明确的说明。但是普通的copy根本不起作用。createC
2014-01-23 15:09:06
11582
1
原创 分段录制的实现
分段录制也就是可以暂停之后恢复录制,并且录制结束之后是在同一个文件中。不管video还是audio都是有时间戳的frame,真是因为有时间戳播放器才能有序的进行播放了。因此在分段录制中,只要在暂停的时候记录一下当前的一个时间戳,然后在恢复之后计算一下这之间的时间差,然后在将这个frame写入之前修改一下这个frame的时间戳就行了。原理还是蛮简单的,因此实现也简单的多了。code说明一切,需要的咨
2014-01-23 13:08:10
11549
原创 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
5658
原创 ios中解析json对象基类
这个是对上面一篇写的一个解析json对象的基类@interface BaseObjectFromJson : NSObject+ (id) objectWithDict:(NSDictionary*)dict withClassName:(NSString*)className;+ (NSArray*) objectsWithArray:(NSArray*)array withCla
2013-11-06 09:27:39
2859
原创 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
9431
1
翻译 Core Animation 基础 笔记
最近在学习CA部分东西,闲在就翻译了一下apple的这个CA的指南的基础部分,有机会再翻译其他的部分。限于水平,翻译不到位或者不足之处请指出。原文地址基于层的绘图模型 多数层并不做任何实际的绘图操作。相反,一个层会抓取你应用所提供的内容并把它缓存再位图中,有时候我们把这个位图称之为后备存储(backing stroe). 当后面你修改这个层的一个属性时,你所做的修改其实是修改了
2013-07-29 11:59:22
2369
原创 自动备份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
1789
转载 开源界的大变化: LLVM Clang libc++ LLDB
近日, LLVM 项目和开发者 Chris Lattner 获得 ACM 颁发的 SIGPLAN 软件系统奖,将这个由 Apple 主导的 BSD 系开源项目推到了开源界的焦点。本文由 comicfans44 撰写,介绍下 LLVM 项目中的两个新组件: libcxx 和 lldb 。首先声明,本文在除去技术上的相关介绍较为准确外,其他内容多为臆测,仅供参考。近期来,apple在llv
2013-06-29 16:39:09
2683
转载 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
777
转载 控制 22 分钟的会议时间(荐)
控制 22 分钟的会议时间“会议拉锯战”是每个人都头痛的。如何高效的进行会议,相信每个人都希望了解。那么或许这篇文章可能给大家有所启发。没有人因任何的因素喜欢开会。其实很多情况下,大部分的人都认为一些的会议都是在浪费时间。那么,如何剔除会议中那些浪费时间的方面,留下精华部分?让我们尝试下将会议时间压缩到 22 分钟,Nicole 首先提出了这个想法,我个人认为这是目
2012-10-16 14:30:31
844
原创 python写的打包脚本
之前有使用批处理进行前面和打包,感觉好累人啊。所以抽了点时间学习一下python。虽然是第一次接触python,学习之后感觉python比较强大,在很多方面比较像C++。以后大可以使用python代替批处理了。以下是我写的一个签名和打包的代码。这个代码受限于我们公司的签名等流程。不过里面有写文件、ftp、目录、字符串、面向对象的东西,可以作为以后使用的标记。import ConfigP
2012-10-05 21:32:14
2077
原创 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
5464
原创 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
1619
转载 Umdhtools.exe: 如何使用 umdh.exe 来查找内存泄漏
http://support.microsoft.com/kb/268343用户模式转储堆 (UMDH) 实用程序处理分析 Windows 堆分配特定进程的操作系统。主要针对此实用程序,并与之关联的其他工具用于 Windows 2000 和 Windows XP。单击播放 按钮以查看此流媒体演示。请注意 ACELP ® 编解码器编码视频,您需要安装在可用的免费 ACELP ®
2012-06-16 17:12:58
2634
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
2626
原创 android源码分析-aapt
aapt就是Android Asset Packaging Tool ,一般在sdk的tools中可以找到,一般是和adb之类的工具在一起。这个工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk)。 也可将资源文件编译成二进制文件。 android的核心代码还没有来得及看呢,这篇我主要是讲述这几天将linux上面的这块代码一直到windows上面的经验。aapt
2012-02-22 17:20:25
8506
1
Compuware Devpartner Studio 9.0.2 Professional 种子和破解文件
2010-11-02
微软过滤驱动内存管理smbios说明等技术文档
2010-04-09
icrosoft Windows Internals Fourth Edition(2004).chm
2009-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人