代码改变世界

随笔分类 -  Objective-C

ARC 有趣的东西 1

2013-02-28 22:59 by curer, 642 阅读, 收藏, 编辑
摘要: 内容主要来自http://www.galloway.me.uk/2012/01/a-look-under-arcs-hood-episode-1/ 里面加入了一点点自己的吐槽和理解已经有很久很久没有写一些 under the hood 的东西了, 好久没有学习新的技术了, 不说废话了. ARC 是编译器的技术, 不知道为什么, 我对编译器增加额外代码有着非常大的恐惧, 是因为和C++ 相关么? 不知道, anyway ARC 的确帮我这样的码农减少了工作量, 对于一向懒惰的我来说, 我还是更倾向于省事.在之前写block 的时候, 有些好奇的家伙们问我,是怎么发现编译器增加代码的. 这个其实很 阅读全文

Objective-C block

2012-02-03 12:11 by curer, 10032 阅读, 收藏, 编辑
摘要: block 有什么意义,特点等等,这些东西,实在是太复杂了,这里只是简单的总结一下block的内存管理。而且也仅仅限于objective-C的部分Block memoryblock 的内存管理,应该是最头疼的地方,就用这个来自WWDC的例子来解释一下吧。当程序运行到这里时,stack 空间中有 shared 变量和 captured 变量。这里可以看出,__block 变量开始是处于stack上的。当程序运行到这里时,stack 空间中有 shared 变量,captured 变量和block1。这里可以看出,block 类型的变量开始时也是处在stack上的。当程序运行到这里时,stack 阅读全文

Objective-C 一些很基础的总结

2012-01-12 17:32 by curer, 3282 阅读, 收藏, 编辑
摘要: 学习 Objective-C大概4个月了,居然给一个还没毕业的家伙吹了吹,呼,希望不要误人子弟。这里总结一下,毕竟这是第一次完整的讲一个东西。附上PPTObjective-C Primary 。资源99%来自WWDC 2010 session 113。Common ConceptsObjective-C 相对其他更了解的C++语言来说,还是有些不同的。如下表这里面有几点比较重要Objective-C 中所有的类,其实是另一种“类”的对象,所以Objective-C 中的类方法,其实是另一种类的实例方法。 Objective-C MessageObjective-C 中没有静态变量,都是用全局变 阅读全文

Objective C SEL

2011-10-16 16:46 by curer, 3536 阅读, 收藏, 编辑
摘要: 上一篇http://www.cnblogs.com/studentdeng/archive/2011/10/06/2199873.html,总结了一点关于Objective C message send 的有意思的东西,中间穿插了一点关于SEL有趣的东西,之前,我们知道Objective-C runtime 在处理selector时,是做一个unique hash set, 那么今天,我们看看这个set 是如何产生的。这篇文章参考了http://www.sealiesoftware.com/blog/archive/2009/09/01/objc_explain_Selector_uniqui 阅读全文

Objective-C Message

2011-10-06 13:22 by curer, 5237 阅读, 收藏, 编辑
摘要: object c 里面有一个非常有趣的设计,如果之前了解过c++的家伙们,对object c 中的把传统的调用函数变成了向这个类发送消息,这个过程总是令人琢磨不透,在实际过程中遇到的crash也很难调试清楚。这篇就要详细的解释消息这个家伙。当然,消息这个涉及的东西实在是太多了。这篇先简单介绍一下。上一篇,我们了解了什么是类http://www.cnblogs.com/studentdeng/archive/2011/10/01/2197194.html。同理这一篇,我们首先需要了解什么是message。message(消息):message的具体定义很难说,因为并没有真正的代码描述,简单的讲m 阅读全文

Objective-C 什么是类

2011-10-05 22:04 by curer, 2965 阅读, 收藏, 编辑
摘要: 之前一直做C++开发,最近2个多月转Objective-C, 入门的时候,遇到了很多的困惑。现在过节,正是解决他们的好时机。主要参考来自http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.htmlObjective-C 也是面向对象的语言,那么,首先需要知道的就是什么是class。C++ 的class相对Objective-C 中的class,就简单明了很多了。C++ 中class简单的说,就是一个大的struct, 绝大部分的class可以在编译时决定好class 阅读全文