解析Cocoa 中 Core Foundation 对象内存管理

移动开发 iOS
本章介绍了Cocoa和Core Foundation对象在引用计数环境中的用法。如果您使用垃圾回收机制—见垃圾回收编程指南,则语义有所不同。

先了解一下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)的实现是兼容的—每种环境中等价的函数和方法可以混合使用。因此,

  1. NSString *str = [[NSString alloc] initWithCharacters: ...];   
  2. ...   
  3. [str release];  

等同于

  1. CFStringRef str = CFStringCreateWithCharacters(...);   
  2.  ...   
  3. CFRelease(str);  

  1. NSString *str = (NSString *)CFStringCreateWithCharacters(...);   
  2.  ...   
  3. [str release];  

  1.  NSString *str = (NSString *)CFStringCreateWithCharacters(...);   
  2.  ...   
  3. [str autorelease];  

正如这些代码示例所示,一旦被创建,类型转换对象可以被视为CocoaCore Foundation对象,而且,在每种环境中看起来都是“本地”的。

小结:解析Cocoa Core Foundation 对象内存管理的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-28 11:12:25

Cocoa 内存

2011-08-15 16:28:06

Cocoa内存管理

2011-07-26 15:14:24

苹果 Cocoa 内存

2011-07-07 13:59:49

Cocoa Objective- 根类

2011-07-07 14:22:27

Cocoa 对象 生命周期

2013-03-28 09:55:37

Java对象

2015-07-08 16:00:32

Foundation

2011-07-18 16:51:51

Cocoa 单态 模式

2012-05-21 09:51:25

对象Cocoa

2011-08-15 14:27:51

CocoaRunLoop

2011-07-20 14:41:53

Cocoa Zip 框架

2022-02-28 10:25:17

Python参数传递拷贝

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-08-12 14:54:45

iPhone委托

2011-08-10 18:37:32

CocoaMac OS X

2013-10-11 17:24:47

Linux运维内存管理

2016-10-09 14:41:40

Swift开发ARC

2011-07-18 15:20:28

Core Services 框架

2011-06-17 16:23:49

Cocoa苹果

2010-11-08 09:59:22

SQL Server动
点赞
收藏

51CTO技术栈公众号