摘要: 当你需要和别人分享代码,但又不想让别人看到你内部的实现时就需要制作静态库,通常用于第三方SDK下面就分享一下制作静态库(.a)的过程:1、打开Xcode,新建workspace2、随便给workspace取个名字3、在workspace新建工程4、选择静态库5、点击下一步6、删除系统自动帮你生成的文件7、引入需要制作成静态库的代码文件8、添加build headers9、点击后出出现一个可以添加头文件的选项10、添加要暴露给外界的头文件11、调整头文件的位置,拖到public12、选择设备(默认为真机),设备决定了该静态库用于真机还是模拟器,然后command+B经过了以上12步,就完成了一个 阅读全文
posted @ 2014-03-20 11:26 循环 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该对象发送消息导致这个问题。可以通过在Xcode中设置NSZombieEnabled变量来获取一些详细信息。Xcode 4之前的做法是:1 在XCode界面中,双击Executables中的可执行文件,将会弹出一个设置对话框2 在Arguments选项中的下半部分“Variables to be set in the environment”中增加"NSZombieEnabled"名称,其值设为“YES”.3 然后重新debug有问题的程序,你 阅读全文
posted @ 2014-03-20 11:20 循环 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三,实例:假设一个场景,股票的价格显示在当前屏幕上,当股票价格更改的时候,实时显示更新其价格。1.定义DataModel,[cpp]view plaincopy@interfaceStockData:NSObject{NSString*stockName;f 阅读全文
posted @ 2014-03-19 14:22 循环 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1: 主线程修改了数据库的某一条记录,但是子线程没有发生变化,反过来一样的问题。这种情况一般是发生在app有多个NSManagedObjectContext,两个线程分别对其进行了读写操作。2: 有时候程序会莫名其妙的crash掉,这个有很多原因: a: 有时候是因为两个线程同时读写数据库中的同一条记录。 b: 有时候根本找不到是哪里的原因。 这两种情况一般是发生在app只有一个NSManagedObjectContext,两个线程都对其进行了读写操作。在实际的开发当中,我遇到了各种各样的问题,如果是多线程操作数据库的话,个人建议:1: 最好一个线程对应一个NSManagedObjectCon 阅读全文
posted @ 2014-03-18 19:42 循环 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.net/may_he/article/details/8549358LLDBGDBLaunch a process no arguments.(lldb)process launch(lldb)run(lldb)r(gdb)run(gdb)rLaunch a process with arguments.(lldb)process launch -- (lldb)r (gdb)run (gdb)r Launch a process for with argumentsa.out 1 2 3without having to supply the arg 阅读全文
posted @ 2014-03-15 16:54 循环 阅读(1506) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.sina.com.cn/s/blog_71715bf8010166qf.html开篇大话:Object-C语言的异常处理符号和C++、JAVA相似。再加上使用NSException,NSError或者自定义的类,你可以在你的应用程序里添加强大的错误处理机制。异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个异常 阅读全文
posted @ 2014-03-15 16:29 循环 阅读(125) 评论(0) 推荐(0) 编辑