
ios
依然风
为中华之创新而读书
展开
-
ios开发之何时用delegate,何时用notification?
大家都知道delegate和notification都是为了在不同的对象之间传递数据,那么何时该使用delegate,何时该使用notification呢?1.参数的不同使用delegate参数更加直观,使用notification参数不那么直观,所以能使用delegate的地方,尽量使用delegate2.传递的长度有时候你的页面会一次跳好几个页面,那么你想把这个页面的数据传回到原创 2013-04-22 11:06:50 · 5168 阅读 · 0 评论 -
关于xcode链接c++代码的解决方案
首先经常会出现这个不存在,那个不存在,那么肯定就是要引入库1.编译方法C++ Standard Library,为libstdc++ or Compiler Default2.添加框架stdc++.6.dylib,或者搜索在框架里面搜索c++3.把.m文件改成.mm文件。原创 2014-03-20 09:25:19 · 1587 阅读 · 0 评论 -
ios SIG错误
#define SIGHUP 1 /* hangup */#define SIGINT 2 /* interrupt */#define SIGQUIT 3 /* quit */#define SIGILL 4 /* illegal instruction (not reset when caught) */#原创 2013-12-11 18:11:17 · 1523 阅读 · 0 评论 -
从哲学角度理解面向对象的思想
http://www.cnblogs.com/leoo2sk/archive/2009/04/09/1432103.html目录 Catelog 目录 Catelog 序言 Perface 真经第一章:世界 Waltanschauung转载 2012-08-11 15:43:27 · 7347 阅读 · 4 评论 -
浮点数精度丢失问题
C#中的浮点数,分单精度(float)和双精度(double):float 是System.Single 的别名,介于 -3.402823e38 和 +3.402823e38 之间的32位数字,符合二进制浮点算法的 IEC 60559:1989 (IEEE 754) 标准;double 是System.Double 的别名,介于 -1.79769313486232e308转载 2014-12-22 14:15:27 · 3048 阅读 · 0 评论 -
ARM Hacking: EXC_ARM_DA_ALIGN exception
http://www.galloway.me.uk/2010/10/arm-hacking-exc_arm_da_align-exception/I came across a problem today that I’d seen before but couldn’t remember when. Then I stumbled across Peter Bakhirev writ转载 2014-03-21 12:46:13 · 1496 阅读 · 1 评论 -
IOS SQLite经验总结
1.如何扩展一个表的列[database executeUpdate:@"alter table device add column cameraShareFrom TEXT"];原创 2014-03-20 14:30:21 · 624 阅读 · 0 评论 -
解决bug小结
最近在工作中遇到两个bug,解决都花了很长时间,其实真正解决的时候又发现时间是很简单的问题,我分析,花很长时间的原因在于都这个东西了解的不透彻,没有运用逻辑思考去一步步逼近问题,而是这里觉得有问题去试下,那里觉得有问题去试下,下面我说下两个bug的现象。第一个,是链接错误Undefined symbols for architecture i386:"_OBJC_CLASS_很明显这个是某原创 2014-03-13 08:40:05 · 834 阅读 · 0 评论 -
实时Bug检测工具Bugsnag发布API更新
在应用开发过程中,开发者常常会碰到一个非常头疼的问题,就是应用崩溃。为了解决这一问题,原移动游戏公司Heyzap CTO James Smith和同事Simon Maynard一起创办了Bugsnag公司,共同开发了一款简单、易用的实时Bug检测工具——Bugsnag。帮助开发者查找、追踪移动应用和Web应用中出现的错误问题,为开发者节省了大量的测试时间。图:实时Bug检测工具Bugs转载 2013-08-22 21:36:02 · 1198 阅读 · 0 评论 -
nonatomic retain copy assign区别
1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉。 2. 了解到1中assign的问题,那么如何解决?最简单的一个方法转载 2013-08-08 10:38:40 · 746 阅读 · 0 评论 -
应用软件开发的本质
尽可能的利用别人的API,SDK开发出更好的软件。原创 2013-06-12 09:53:55 · 715 阅读 · 0 评论 -
正则表达式30分钟入门教程
http://deerchao.net/tutorials/regex/regex.htm目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式是转载 2013-05-09 13:20:35 · 576 阅读 · 0 评论 -
如何重构代码?
发现代码的坏味道——目标——写测试用例——重构——测试(小步推进+备份)重构前先有测试机制。重构这段代码的时候先找到局部变量和参数。重构技术就是以微小的步伐修改程序,如果你犯下错误,很容易便可发现它。提炼函数——xcode自带的refactor-extra重构前先设计如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序。原创 2012-10-03 10:14:34 · 590 阅读 · 0 评论 -
XCode下的iOS单元测试
XCode 内置了 OCUnit 单元测试框架,但目前最好用的测试框架应该是 GHUnit。通过 GHUnit + OCMock 组合,我们可以在 iOS 下进行较强大的单元测试功能。本文将演示如何在 XCode 4.2 下使用 OCUnit, GHUnit 和 OCMock 进行单元测试。OCUnit在 XCode 下新建一个 OCUnitProject 工程,选中 Include Un转载 2012-10-02 11:00:07 · 1009 阅读 · 0 评论 -
solve Undefined symbols for architecture i386:"_OBJC_CLASS_$_SKPSMTPMessage", referenced from
1.You can get this type of error if your class' .m file is not listed under the "Compile Sources" step of the "Build Phases" tab of your target. Normally Xcode does this for you, but sometimes it lose原创 2014-03-03 20:17:35 · 1261 阅读 · 0 评论 -
如何解决EXC_BAD_ACCESS?
You can often get information from the header files. For example:$ cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk$ find usr -name \*.h -exec f原创 2013-11-25 10:57:06 · 2331 阅读 · 0 评论 -
solve xcode Undefined symbols for architecture i386:"_OBJC_CLASS_$_SKPSMTPMessage", referenced from
1.You can get this type of error if your class' .m file is not listed under the "Compile Sources" step of the "Build Phases" tab of your target. Normally Xcode does this for you, but sometimes it lose原创 2013-09-29 15:01:34 · 1709 阅读 · 0 评论 -
NSCode对象归档解档
对象编码预备知识类定义协议相关文章归档属性表对象生命周期对象编码把对象的类特征以及对象状态转化某种格式,这种格式可存储,也可在进程间传递。类的类型以及实例数据会被写入到某种字节流里面,当程序结束的时候,该字节流可进行持久化。程序启动的时候,新分配对象可以解码之前保存的自身描述,然后把自己恢复到之前运行时的状态。编码通常需和归档协作。归档将对象图转化成一种可以原创 2012-04-11 19:34:10 · 6678 阅读 · 0 评论 -
self与release用法
self release其实下面的东西都跟内存管理有关,可以参看其他文章看不出[self.xxx release]和[xxx release]的用法有什么本质的差别。self.xxx多一个步骤:通过getter得到成员变量。而通常情况下,getter也只是直接返回相应的对象。这点楼主自己也说明了。建议不要在这个问题上太过纠结,遵守常规约定即可。1. 一般情况下,对于类型是对象的转载 2012-04-12 10:48:30 · 1859 阅读 · 0 评论 -
使用Audio Queue Services 播放和录制音频
要在iOS设备上播放和录制音频,苹果推荐我们使用AVFoundation框架中的AVAudioPlayer和AVAudioRecorder类。虽然用法比较简单,但是不支持流式;这就意味着:在播放音频前,必须等到整个音频加载完成后,才能开始播放音频;录音时,也必须等到录音结束后,才能获取到录音数据。这给应用造成了很大的局限性。为了解决这个问题,我们就需要使用Audio Queue Services来转载 2012-04-22 11:00:56 · 1095 阅读 · 0 评论 -
ios开发 录音内部过程
1,准备,检查设备、设置、音频文件分配地址等。这个过程中会产生文件头。2,开始录音,这个时候或者在此之前,写文件头到音频文件。录音的实时的数据保存在内存内建的缓冲区,直到存满或者结束录音,才会从内存写到音频文件。3,结束,收尾操作。转载 2012-05-07 19:14:51 · 1297 阅读 · 0 评论 -
防止你的iPhone程序遭盗版(入门篇)
原文地址 http://b.imi.im/?p=356首先简单介绍一下原理:现在大多数的破解苹果验证安装app的办法都会动一个文件, 就是在.app文件夹下的”Info.plist”, 也就是那个程序信息文件.代码很简单, 不再详细解释什么意思了1. 检查Info.plist 是否存在 SignerIdentity这个键名(Key).未破解的程序是不会有这个键名的, 苹果没给你转载 2012-05-09 20:15:59 · 1417 阅读 · 0 评论 -
如何更快地读懂别人的代码
如果你能更快速的读懂别人的代码并且使用,那么你的开发效率将成倍增加,因为很多东西你不用自己写,拿来就可以用,这样你就可以站在更高的高度开发出更好的东西,那么我们该如何更快更好地阅读和理解别人的代码呢?1.成功的经验记得上次使用RTSP流的时候是用的最爽的一次,虽然代码编写者写的真的很棒,但是之前的准备工作也是非常重要。比如了解RTSP流的建立过程,作者的接口也是这么来的,然原创 2012-05-20 18:03:57 · 2456 阅读 · 2 评论 -
MP4格式分析
MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12ISO base media fileformat)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌转载 2012-06-07 09:21:10 · 2997 阅读 · 0 评论 -
内存管理深入研究
每次做项目最后都被内存管理纠缠几天,而且我们做的又是最消耗内存的音视频项目,如果控制不好内存,小则内存暴增,大则程序崩溃,如果不除掉这块心头病,项目开发难以顺利的进行,时间也白白浪费了,在这里深入剖析一下。a.NSObject原则一:尽量不使用自动释放方法,能自己释放的就自己释放。正确做法:NSData *data = [[NSData alloc]initWithByte原创 2012-09-26 16:38:04 · 1823 阅读 · 3 评论 -
NSLogger使用总结
1.编译desktopviewer的时候会出现xib出错点击,根据提示把这个加进去就可以了,这个东西是一个插件,编译的时候会产生,在编译的目标里面可以找到2.打印图片UIImage *image = [UIImage imageNamed:@"Snip20120929_5.png"];LogImageData(@"image", 0, 320, 240, UIImagePNGR原创 2012-09-30 00:10:09 · 4429 阅读 · 3 评论 -
iOS音频播放参数设置问题(rtsp)
dataFormat.mSampleRate = 8000; //vlc播放器可以查到 dataFormat.mFormatID = kAudioFormatULaw;//vlc播放器可以查到 dataFormat.mFormatFlags = kAudioFormatFlagIsSignedInteger原创 2012-12-19 14:30:35 · 4312 阅读 · 1 评论 -
object-c执行applescript
NSString *string = [[[NSBundlemainBundle]resourcePath]stringByAppendingPathComponent:@"ping.scpt"]; NSLog(@"%@",string); NSDictionary *errorInfo; NSAppleScript *appleScript = [[N原创 2013-09-27 17:46:06 · 3096 阅读 · 0 评论 -
dropbox ios授权token的使用
DBSession* dbSession = [[[DBSession alloc] initWithAppKey:@"rskuwkeyazkgagm" appSecret:@"w2bd6qayqmvxzzx" root:kDBRootAppFolder] // either kDBRootAppFolder or kDBRootDropbox原创 2013-06-19 11:22:07 · 1675 阅读 · 0 评论 -
ARC深入研究
ARC真的很简单!就像这幅图说的,让我们开发从最原始的状态,慢慢进化成了人,开发效率肯定是成倍的增长!这是令人激动的事情。。。但是ARC中还是有一些规则需要我们掌握,这样才能用好这个强大的工具。1.多了一些关键字Lifetime Qualifiers他们被苹果叫做生命限定符,那么就是说他们决定了对象的生死。那么接下来我们来看看他们是怎么样决定对象的生死的?__strong__wea原创 2012-09-08 12:23:57 · 753 阅读 · 0 评论 -
Xcode4使用技巧
使用xcode4也有一段时间了,今天整理了一下xcode4的一些使用技巧,在这里分享给大家。快捷键如果能慢慢熟悉一些快捷键,对于提高工作效率是有很大帮助的。虽然设置页面有所有的快键键列表,但是估计没人能全部记住并且用上,我个人总结出来常用的快键键如下:123456789101112131415161718192021转载 2012-09-07 22:54:23 · 1391 阅读 · 0 评论 -
Objective-C特点及特征
Objective-C中的命名前缀说明:NS:NextStepCF:Core FoundationCA:Core AnimationCG:Core GraphicsUI:User InterfaceObjective-C与C++的不同之处有:Objective-C中所有的类都必须继承自NSObject。Objective-C中所有对象都是指针的形式。Object转载 2012-09-06 16:57:28 · 1270 阅读 · 0 评论 -
如何在多台机器上共享IOS证书
1. 下载.cer文件到别的机器。就是在IDP上的那个。2. 从发送申请文件(certificate Request,后缀名为certSigningRequest)的机器上把证书对应的private key(.p12文件)导出,密码自己定,要记住,后面导入的时候要用。(右击你原来安装的文件导出)3. 在你需要的机器上安装证书(.cer),导入私钥文件(.p12)。安装对应App转载 2012-05-11 15:03:29 · 1354 阅读 · 0 评论 -
iPhone中如何进行多线程编程和线程锁
http://disanji.net/2011/04/23/iphone-how-multi-thread/多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动转载 2012-05-09 16:16:33 · 950 阅读 · 0 评论 -
iphone开发之数据库CoreData
CoreData介绍在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作。当然你也可以通过别人封装之后的一些简单框架,使得你的操作更加简单(如FMDBBNRPersistence)。 Cocoa框架本身提供了CoreData这个API可方便的让开发者通过操作对象的方式在操作数据库。CoreData是一个对象图(转载 2012-05-09 20:13:48 · 526 阅读 · 0 评论 -
instrument下的工具
instrument下的工具1.Time Profiler查看函数耗时,注意勾选左下角的一些选项2.cpu sampler不仅可以查看cpu使用情况,还可以参看内存使用情况,很给力3.leaks定位内存泄露情况原创 2012-05-08 17:03:56 · 656 阅读 · 0 评论 -
iphone开发 内存管理
我一般喜欢在开发的最后阶段,才考虑内存管理那么就需要好的工具,帮你定位,内存泄露的位置。经过一段时间的研究,已经完美控制了内存的增长1.通过查找alloc关键字,自己找出项目中需要释放的内存2.可以通过instruments中的cpu sample查看cpu和内存使用情况2.你还可以使用instruments中的leaks查看内存泄露的地方甚至还可以直接定位到代码段原创 2012-05-07 16:30:03 · 810 阅读 · 0 评论 -
继承与指针
B继承AA *a;B *b;b = a ; //正确a = b; //错误因为指针只能指向一个特定的区域,特定的长度因为a的长度超过了b的长度原创 2012-04-21 22:02:50 · 522 阅读 · 0 评论 -
h264结构
推荐思维导图软件:https://bubbl.us/原创 2012-04-15 09:48:56 · 881 阅读 · 0 评论 -
super dealloc
iPhone开发的时候就没有垃圾回收机制。最后一行的[super dealloc];非常重要。我们必须要发送消息去让父类清除它自己。假如不这么做的话,这个对象其实没有被清除干净,存在内存泄露。dealloc在垃圾回收机制下不会被调用到。初始化我们可以创建一个初始化方法去给类的实例的成员变量赋初值: - (id) init { if ( sel转载 2012-04-11 22:37:46 · 1443 阅读 · 0 评论