版权声明
此文版权归作者
Vince Yuan (vince.yuan#gmail.com)
所有。欢迎非营利性转载,转载时必须包含原始链接
http://vinceyuan.cnblogs.com
,且必须包含此版权声明的完整内容。
版本
1.1
发表于
2010-03-08
三
@property (retain)
和
@synthesize
的默认实现
在这里解释一下
@property (retain) ClassB* objB;
和
@synthesize objB;
背后到底发生了什么
(retain property
的默认实现
)
。
property
实际上是
getter
和
setter
,针对有
retain
参数的
property
,背后的实现如下(请参考附件中的
memman-getter-setter.m
,你会发现,结果和
memman-property.m
一样):
@interface ClassA : NSObject
{
ClassB *objB;
}
-(ClassB *) getObjB;
-(void) setObjB:(ClassB *) value;
@end
@implementation ClassA
-(ClassB*) getObjB
{
return objB;
}
-(void) setObjB:(ClassB*) value
{
if (objB != value)
{
[objB release];
objB = [value retain];
}
}
在
setObjB
中,如果新设定的值和原值不同的话,必须要把原值对象
release
一次,这样才能保证
retain count
是正确的。
由于我们在
class
内部
retain
了一次(虽然是默认实现的),所以我们要在
dealloc
方法中
release
这个成员变量。
-(void) dealloc
{
[objB release];
[super dealloc];
}
分享到:
相关推荐
初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏 ...我在这里总结了自己对objective-C内存管理机制的研究成果和经验,写了这么一个由 浅入深的教程
iPhone/Mac Objective-C 内存管理教程和原理剖析 初学 objectice-C 的朋友都有一个困惑,总觉得对 objective-C 的内存管理 机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对 o bjective-C 内存...
More iPhone Development with Objective-C is an independent companion to Beginning iPhone Development with Objective-C. That is, it is a perfect second book, but it is also a great book for those ...
Objective-C语言将决定尽可能的从编译和链接时推迟到运行时。只要有可能,Objective-C总是使用动态的方式来解决问题。这意味着Objective-C语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码。这儿...
读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/ipad和mac应用开发。《objective-c程序设计》共分成11章。前6章讲述objective-c语言,包括数据类型、运算符、表达式...
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
Objective-C是创建Mac OS应用和iPhone应用的主要语言,优雅的面向对象编程环境与C语言特性珠联璧合,造就了它的不俗表现。 本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例...
中文名: Objective-C基础教程 作者: Mark Dalrymple Scott Knaster译者: 高朝勤 杨越 刘霞图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社 书号: ISBN: 9787115208774 发行时间: 2009...
Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中...
《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等...
《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等...
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
Title: More iPhone Development with Objective-C, 3rd Edition Author: Alex Horovitz, David Mark, Jayant Varma, Jeff LaMarche, Kevin Kim Length: 512 pages Edition: 3 Language: English Publisher: Apress ...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
objective-c语言教程。最新原版资料。内有基本语法,类对象使用,也有协议、线程等的介绍和使用等。是iphone开发的基础资料
学习Objective-C: 入门教程
Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。所以有一定C/C++语言基础理解和掌握Objective-C也会相应的快些。这回,我们将比较着学习 Objective-C语言,掌握其语法并理解其...
在windows系统下搭建Objective-C开发环境,由于公司要做iphone开发,个人学习objc(Objective-C)语法,所以在windows7下搭建了一个objc开发环境,现把自己整理的帮助文档拿来与大家分享,希望能对大家有所帮助。...