摘要:
博客iOS延时执行的几种方法热度7已有 20486 次阅读2012-6-1 11:16|系统分类:ios1.最直接的方法performSelector:withObject:afterDelay:这种方法的缺点:每次要为延时写一个方法2.使用类别,用BOLCK执行[代码]c#/cpp/oc代码:01@implementation NSObject (PerformBlockAfterDelay)0203- (void)performBlock:(void(^)(void))block04afterDelay:(NSTimeInterval)delay05{06block = [[block c 阅读全文
摘要:
iOS持久化文件系统归档和序列化数据库1.文件系统不管是Mac OS X 还是iOS的文件系统都是建立在UNIX文件系统基础之上的。1.1 沙盒模型在iOS中,一个App的读写权限只局限于自己的沙盒目录中。沙盒模型到底有哪些好处呢?安全:别的App无法修改你的程序或数据保护隐私:别的App无法读取你的程序和数据方便删除:因为一个App所有产生的内容都在自己的沙盒中,所以删除App只需要将沙盒删除就可以彻底删除程序了iOS App沙盒中的目录App Bundle ,如xxx.app 其实是一个目录,里面有app本身的二进制数据以及资源文件Documents, 存放程序产生的文档数据Library 阅读全文
摘要:
1、简介:1.1iOS有三种多线程编程的技术,分别是:1.、NSThread2、CocoaNSOperation(iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD全称:GrandCentralDispatch(iOS多线程编程之GrandCentralDispatch(GCD)介绍和使用)这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。这篇我们主要介绍和使用NSThread,后面会继续2、3的讲解和使用。1.2三种方式的优缺点介绍:NSThread:优点:NSThread比其他两个轻量级缺点:需要自 阅读全文
摘要:
深入浅出 Cocoa 之 Core Data(2)- 代码示例罗朝辉(http://blog.csdn.net/kesalin)CC 许可,转载请注明出处前面详细讲解了 Core Data 的框架以及设计的类,下面我们来讲解一个完全手动编写代码使用这些类的示例,这个例子来自苹果官方示例。在这个例子里面,我们打算做这样一件事情:记录程序运行记录(时间与 process id),并保存到xml文件中。我们使用 Core Data 来做这个事情。示例代码下载:点击这里一,建立一个新的 Maccommand-line tool application 工程,命名为 CoreDataTutori 阅读全文
摘要:
深入浅出 Cocoa 之 Core Data(1)- 框架详解罗朝辉(http://blog.csdn.net/kesalin)CC 许可,转载请注明出处Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂。Core Data 相关的类比较多,初学者往往不太容易弄懂。计划用三个教程来讲解这一部分:框架详解:讲解 Core data 框架,运作过程,设计的类;Core data应用程序示例:通过生成一个使用 Core data 的应用程序来讲解如何 在 XCode 4 中使用 Core data。手动创建Core data示例:不利用框架自动生成代码 阅读全文
摘要:
什么是GCDGrand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(Closure)一样,但苹果把它叫做blocks。应用举例让我们来看一个编程场景。我们要在iphone上做一个下载网页的功能,该功能非常简单,就是在iphone上放置一个按钮,点击该按钮时,显示一个转动的圆圈,表示正在进行下载,下.. 阅读全文
摘要:
最近在研究ios的推送问题,遇到了一些问题,最终整理了一下。放在这里和大家分享APNS的推送机制首先我们看一下苹果官方给出的对ios推送机制的解释。如下图Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。上图可以分为三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照 阅读全文
摘要:
一、 Writable atomic property 'numberOfImages' cannot pair a synthesized setter/getter with a user defined setter/getter这个是导入了OPenFlow包产生的,查找这两个文件的头文件声明获知,这两个属性声明是这样的:@property int number;@propertyint numberOfImages;可以有以下几种方法解决:1. 声明属性为nonatomic,即我上面的修改方法。2. @synthesize合成用getter/setter方法(即自己手动 阅读全文
摘要:
不知道你有没有经常遇到 这种 参数为 nil 的错误 或者是 数组错误。而且现在在 多线程中 还是 大量使用 block 的情况下 要查找起来 实在是 太费劲了所以 我用了个 取巧的办法(可能会导致你的逻辑错误) 用swizzle 来替换这些没验证的方法我是按我自己 umeng 的 错误统计来写的 给出个 例子而已+(void)callSafeCategory{NSError* error = nil;[objc_getClass("__NSPlaceholderArray") jr_swizzleMethod:@selector(initWithObjects:count 阅读全文
摘要:
在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题有点大,计划分几篇来总结。本文主要介绍针对selector的hook,主角被标题剧透了———— Method Swizzling 。Method Swizzling 原理在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。每个类都有一个方法列表, 阅读全文