最近来到新公司,发现他们大规模使用了我之前比较回避的hack方式做事情,虽然我自己对这个不是特别感冒,但是还是决定把OC方面的知识学习汇总一下,趁过年的时候把这几部分再次学习一遍
一. OC方面的博客:
1. OC中的类与对象,关于instance class 与 meta class的区别:
(1). http://www.cnblogs.com/kesalin/archive/2012/01/19/objc_class_object.html
(2). http://blog.devtang.com/blog/2013/10/15/objective-c-object-model/
(3). http://www.cocoawithlove.com/2010/01/what-is-meta-class-in-objective-c.html(翻译: http://blog.jobbole.com/53824/)
(4). http://blog.sunnyxx.com/2014/04/02/objc_dig_arc_dealloc/
(5). http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime(1)%5Bnil%5D-self-and-super/, http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and-class-and-meta-class/, http://chun.tips/blog/2014/11/08/bao-gen-wen-di-objective%5Bnil%5Dc-runtime(4)%5Bnil%5D-cheng-yuan-bian-liang-yu-shu-xing/
(6). http://blog.cocoabit.com/2014-10-06-yi-li-jie-objctive-c-runtime/,原文: http://cocoasamurai.blogspot.jp/2010/01/understanding-objective-c-runtime.html
(7). http://southpeak.github.io/blog/2014/10/25/objective-c-runtime-yun-xing-shi-zhi-lei-yu-dui-xiang/, http://southpeak.github.io/blog/2014/10/30/objective-c-runtime-yun-xing-shi-zhi-er-:cheng-yuan-bian-liang-yu-shu-xing/, http://southpeak.github.io/blog/2014/11/09/objective-c-runtime-yun-xing-shi-zhi-liu-:shi-yi/
(8). http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/
2. OC中消息和Category的理解:
(1). http://www.cnblogs.com/kesalin/archive/2011/08/15/objc_method_base.html
(2). http://www.cnblogs.com/kesalin/archive/2012/11/14/dynamic_method_resolve.html
(3). http://pilky.me/21/,译文: http://limboy.me/ios/2013/08/03/dynamic-tips-and-tricks-with-objective-c.html
(4). http://blog.csdn.net/jasonblog/article/details/7246822
(5). http://tech.glowing.com/cn/objective-c-runtime/
(6). http://chun.tips/blog/2014/11/06/bao-gen-wen-di-objective%5Bnil%5Dc-runtime(3)%5Bnil%5D-xiao-xi-he-category/
(7). http://blog.sunnyxx.com/2014/03/05/objc_category_secret/
(8). http://blog.xcodev.com/archives/implement-objc-property-in-category/
(9). http://blog.xcodev.com/archives/method-signature-in-objc/
(10). http://www.onevcat.com/2012/04/objective-c-runtime/#
(11). http://southpeak.github.io/blog/2014/11/03/objective-c-runtime-yun-xing-shi-zhi-san-:fang-fa-yu-xiao-xi-zhuan-fa/, http://southpeak.github.io/blog/2014/11/08/objective-c-runtime-yun-xing-shi-zhi-wu-:xie-yi-yu-fen-lei/
3. Method Swizzling:
(1). http://www.cnblogs.com/kesalin/archive/2012/01/05/objc_method_swizzling.html
(2). http://tech.glowing.com/cn/method-swizzling-aop/
(3). http://blog.csdn.net/yiyaaixuexi/article/details/9374411
(4). http://blog.xcodev.com/archives/uialertview-animation/
(5). http://www.cocoawithlove.com/2008/03/supersequent-implementation.html
(6). http://wufawei.com/2013/06/Monkey-Patching-iOS-with-Swizzling/
(7). http://southpeak.github.io/blog/2014/11/06/objective-c-runtime-yun-xing-shi-zhi-si-:method-swizzling/
4. NSObject中 + load 和 + initialize方法的区别与使用场景
(1). http://www.cnblogs.com/biosli/p/NSObject_inherit.html
(2). https://www.mikeash.com/pyblog/friday-qa-2009-05-22-objective-c-class-loading-and-initialization.html
(3). http://www.molotang.com/articles/1929.html
(4). http://blog.iderzheng.com/objective-c-load-vs-initialize/
5. 动态创建类: http://www.cnblogs.com/kesalin/archive/2012/01/30/objc_create_class.html
6. block:
(1). http://blog.devtang.com/blog/2013/07/28/a-look-inside-blocks/
(2). http://tanqisen.github.io/blog/2013/04/19/gcd-block-cycle-retain/
(3). http://blog.csdn.net/jasonblog/article/details/8077340, http://blog.csdn.net/jasonblog/article/details/7756763
(4). http://blog.parse.com/2013/02/05/objective-c-blocks-quiz/
(5). http://www.cnblogs.com/kesalin/archive/2013/04/30/ios_block.html
(6). http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-1/, http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-2/, http://www.galloway.me.uk/2013/05/a-look-inside-blocks-episode-3-block-copy/
(7). http://blog.csdn.net/a330416020/article/details/19119491
7. GCD(我所知的对GCD使用地最好的开源库,应该是GPUImage,后面有空时候读读源代码):
(1). https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch-in-depth-part-1.md, https://github.com/nixzhu/dev-blog/blob/master/2014-05-14-grand-central-dispatch-in-depth-part-2.md
(2). http://www.dreamingwish.com/frontui/article/default/gcd介绍(一)-基本概念和dispatch-queue.html, http://www.dreamingwish.com/frontui/article/default/gcd介绍(二)-多核心的性能.html, http://www.dreamingwish.com/frontui/article/default/gcd介绍(三)-dispatch-sources.html, http://www.dreamingwish.com/frontui/article/default/gcd介绍(四)-完结.html
8. 其他
(1). http://lianxu.me/2012/11/10-cocoa-objc-newbie-problems/
(2). http://stackoverflow.com/questions/2567498/objective-c-categories-in-static-library, http://stackoverflow.com/questions/2906147/what-does-the-all-load-linker-flag-do
(3). http://www.molotang.com/articles/1935.html
二. OC runtime方面的值得学习的开源类库:
1. https://github.com/steipete/Aspects
2. https://github.com/mikeash/MAObjCRuntime
3. https://github.com/rentzsch/jrswizzle
三. 图书资料:
1. https://mikeash.com/book.html
2. <OC runtime Programming guide>
3. <深入浅出Cocoa教程>
4. <Inside Mac OS X — the OC Programming Language>
5. <Effective OC 2.0>
6. <Pro Objective-C>
7. <Cocoa Design Pattern>
8. <Advanced Mac OS X Programming>
9. <Pro Multithreading and Memory Management for iOS and OS X>