摘要: 在Mac上可以像在Linux上一样,使用crontab来定时运行脚本,但苹果并不推荐这个方法。苹果推荐使用Launchctl来完成定时任务。首先,我们先写一个可执行的脚本,列子为php脚本,名字为test.php.其次,要到相对应的目录下面建立plist文件。一共有5个文件夹,差别在于,Agents... 阅读全文
posted @ 2014-05-13 13:58 RYan~~ 阅读(5120) 评论(0) 推荐(0) 编辑
摘要: 在前文《深入浅出Cocoa之类与对象》一文中,我已经详细介绍了ObjC中的 Class 与 Object 的概念,今天我们来如何在运行时动态创建类。下面这个函数就是应用前面讲到的Class,MetaClass的概念,在运行时动态创建一个类。这个函数来自《Inside Mac OS X-The Obj... 阅读全文
posted @ 2014-05-07 12:21 RYan~~ 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 序言如果我们在 Objective C 中向一个对象发送它无法处理的消息,会出现什么情况呢?根据前文《深入浅出Cocoa之消息》的介绍,我们知道发送消息是通过 objc_send(id, SEL, ...) 来实现的,它会首先在对象的类对象的 cache,method list 以及父类对象的 ca... 阅读全文
posted @ 2014-05-07 12:09 RYan~~ 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 在入门级别的ObjC 教程中,我们常对从C++或Java 或其他面向对象语言转过来的程序员说,ObjC 中的方法调用(ObjC中的术语为消息)跟其他语言中的方法调用差不多,只是形式有些不同而已。譬如C++ 中的:Bird * aBird = new Bird();aBird->fly();在ObjC... 阅读全文
posted @ 2014-05-07 11:38 RYan~~ 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 最近打算写一些ObjC中比较底层的东西,尤其是 runtime 相关的。苹果已经将 ObjC runtime 代码开源了,我们可以从:http://opensource.apple.com/source/objc4/objc4-493.9/runtime/浏览源代码,或点此下载源代码。从哪里入手呢?... 阅读全文
posted @ 2014-05-07 11:36 RYan~~ 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 要实现app的自动更新,做两件事情就可以搞定1.获取当前手机中的app版本号我们可以通过查询mainbundle中的获取CFBundleVersion NSDictionary *infoDict = [[NSBundlemainBundle] infoDictionary]; NSString... 阅读全文
posted @ 2014-05-07 10:44 RYan~~ 阅读(3106) 评论(0) 推荐(0) 编辑
摘要: 1.System Versioning Preprocessor Macros#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch... 阅读全文
posted @ 2014-05-06 10:00 RYan~~ 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 1. dispatch queue的概念 dispatch queue分成以下三种: a)运行在主线程的Main queue,通过dispatch_get_main_queue获取。dispatch_get_main_queue也是一种dispatch_queue_t。 b)并行队列globa... 阅读全文
posted @ 2014-05-05 12:26 RYan~~ 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1.定义Block/* 回传void ,参数也是void 的block*/void (^blockReturningVoidWithVoidArgument)( void );/* 回传整数,两个参数分别是整数和字元型态的block*/int (^blockReturningIntWithIntA... 阅读全文
posted @ 2014-05-05 12:08 RYan~~ 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 有时候我们的程序不知道跑到哪个地方就 crash 了,而 crash 又很难重现。保守的做法是在系统抛出异常之前设置断点,具体来说是在 objc_exception_throw处设置断点。设置步骤为:首先在 XCode 按 CMD + 6,进入断点管理窗口;然后点击右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol 一栏输入:objc_exception_throw,然后点击 done,完成。 这样在 Debug 模式下,如果程序即将抛出异常,就能在抛出异常处中断了。比如在前面的代码中,我让 [firstObjctcrashTest]; 抛出异常。在 objc_e 阅读全文
posted @ 2012-05-15 16:04 RYan~~ 阅读(575) 评论(0) 推荐(0) 编辑