会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
agefisher
博客园
首页
新随笔
联系
管理
订阅
06 2012 档案
Practical Memory Management
摘要:Use Accessor Methods to Make Memory Management Easier: 一般使用accessor method 来大幅度减少内存管理出现的问题,相比直接使用retain和release来说。 @interface Counter: NSObject{ NSNumber *_count; } @property (nonatomic, reta...
阅读全文
posted @
2012-06-15 14:06
agefisher
阅读(139)
评论(0)
推荐(0)
Memory Management
摘要:About Memory Management: MRR: “manual retain-release” ARC: Automatic Reference Counting, 和mrr一样,只是编译器在编译的时候加入相应的retain, release, 推荐使用ARC Garbage Collection: 只在 Mac OS X 支持,iOS不支持 Mem...
阅读全文
posted @
2012-06-08 09:58
agefisher
阅读(630)
评论(0)
推荐(0)
Using Blocks
摘要:Invokint a Block: 若定义了一个block变量,就可以像调用函数那样调用. Using a Block as a Function Argument: 可以把一个block 向其他参数一样传给函数;但是,不要单独定义变量,只需要简单的以内联方式来实现就行,而且block只能是最后一个参数。 Using a Block as a Method Argument:...
阅读全文
posted @
2012-06-06 11:00
agefisher
阅读(222)
评论(0)
推荐(0)
Declared Properties
摘要:使用函数,根据property的name,通过metadata来读取一个class, category or protocol 的property类型(@encode String 表示),copying 得到一个array of C Strings 的列表。 example: @interface Lender: NSObject{ floar alone; } @prope...
阅读全文
posted @
2012-06-05 20:00
agefisher
阅读(197)
评论(0)
推荐(0)
Blocks
摘要:如下,定义一个block: 使用之: printf(“%d”, myBlock(3));//prints “21” 也可以直接在使用block: char *myCharacters[3] = {“TomJohn”, “George”, “Charles Condomine”}; qsort_b(myCharacters, 3, sizeof(char *), ^(c...
阅读全文
posted @
2012-06-05 19:59
agefisher
阅读(331)
评论(0)
推荐(0)
Messaging
摘要:编译器将 [receiver message] 编译成:objc_msgSend(receiver, selector); 若有参数的话则是:objc_msgSend(receiver, selector, arg1, arg2, …)。 在动态绑定时,消息函数作的事情: 1. 根据receiver类,找到selector所指的procedure 2.调用找到的procedure, 并将收到...
阅读全文
posted @
2012-06-04 16:34
agefisher
阅读(248)
评论(0)
推荐(0)
Dynamic Method Resolution
摘要:可以通过实现resolveInstanceMethod: 和 resolveClassMethod: 分别来提供对象和类的一个动态函数实现。 定义一个dynamic的属性: @dynamic propertyName; 一个Objective-C 的dynamic 函数是一个c 格式的函数,至少带有两个参数:self 和_cmd. 你可以使用 class_addMethod 函...
阅读全文
posted @
2012-06-04 16:34
agefisher
阅读(202)
评论(0)
推荐(0)
Message Forwarding
摘要:void forwardInvocation:(NSInvocation *) anInvocation… 若调用一个对象没有实现的方法时,在报告一个错误之前,运行时会先调用一个forwardInvocation:方法,该方法会带有一个封装了原始调用的message以及对应的参数。 要forward一个message,所有forwardInvacation的实现必须要: 1. 决定这个mes...
阅读全文
posted @
2012-06-04 16:34
agefisher
阅读(155)
评论(0)
推荐(0)
Interacting with the Runtime
摘要:Objective-C 通过三种不同的层次和运行时系统交互: 1. 通过Objective-C 源代码编译后 2. 通过NSObject 的函数,如: isKindOfClass,确定一个对象的类; isMemberOfClass,确定一个对象在继承层次的位置; respondsToSelector,指出一个对象是否能接受一个特定的message; conformsT...
阅读全文
posted @
2012-06-04 16:33
agefisher
阅读(142)
评论(0)
推荐(0)
公告