linxinfei 2011-07-07
先了解一下Cocoa的基础知识是必要的,然后就是学一下iphone开发最主要的编程语言Objective─c,这对新手后面iphone开发的学习很有帮助,上来就拿本书看iphone开发的容易晕。
许多Core Foundation对象和Cocoa实例可以简单地相互进行类型转换,比如CFString和NSString对象。本文介绍如何管理Cocoa中的Core Foundation对象。有关对象所有权的一般信息请参考“对象的所有权和销毁”。
Core Foundation对象的内存分配策略是,您需要释放那些由名字中包含“Copy”或“Create”的函数返回的值;您不应该释放那些由名字中不包含“Copy”或“Create”的函数返回的值。
Core Foundation对象和Cocoa使用的公约非常相似,而且由于分配(allocation)/保留(retain)/释放(release)的实现是兼容的—每种环境中等价的函数和方法可以混合使用。因此,
NSString *str = [[NSString alloc] initWithCharacters: ...]; ... [str release];
等同于
CFStringRef str = CFStringCreateWithCharacters(...); ... CFRelease(str);
和
NSString *str = (NSString *)CFStringCreateWithCharacters(...); ... [str release];
和
NSString *str = (NSString *)CFStringCreateWithCharacters(...); ... [str autorelease];