`
kerlubasola
  • 浏览: 678787 次
文章分类
社区版块
存档分类
最新评论

self.memeber 和 memeber调用 产生的异同

 
阅读更多


通过上面的代码,能否发现,test函数内 self.m_a 是会执行 m_a函数的,如果直接使用m_a是不会执行此函数的。

注意:同时如果不使用self调用成员变量,那仅仅是赋值,也不会发生默认的函数 retain的。很危险啊。

所以一般情况下 一定要使用self.memeber来调用,这是规矩啊。

但是上面的的代码 一定要注意 可能产生循环调用的问题。如果

- (A*) m_a 函数改成下面的


就会产生循环调用 m_a的问题。因为 self.m_a 会一直调用 -(A*) m_a函数, 无限递归了。


再 增加一点。

比如:

self.a = [[A alloc] init];

和 m_a =[ [A alloc] init];

的差别很大,第一个A 的retain count 是 2。第二个是1。 因为第一个会产生一个临时变量,相当于下面的代码:

A* tempA =[[A alloc] init]; 然而 这个tempA并没有释放 所以导致self.a使retain count 是2。 而第二个是赋值操作(assign)所以不会增加retain count。

分享到:
评论

相关推荐

    fdfs_client-py:fastdfs python客户端兼容4.0.6版

    3. call memeber functions >>> from fdfs_client.client import * >>> client = Fdfs_client('/etc/fdfs/client.conf') >>> ret = client.upload_by_filename('test') >>> ret {'Group name':'group1','Status':'...

    Oracle P6 App(移动端TeamMember)

    Oracle Primavera P6 移动端应用,也是TeamMember的移动版 •The approvals page honors your preferences for displaying Activity ID and Project ID. • You can group status update cards by project, ...

    玩转membership系列之四

    玩转membership系列之四玩转membership系列之四玩转membership系列之四玩转membership系列之四玩转membership系列之四

    BaseSticksProject:The Team 57的BaseSticksProject的此存储库

    BaseSticksProject,《五十七队》 关于这个项目: 该项目是将韩国传统桌游“ Yutnori”和棒球融合在一起的游戏。 = Thie项目现在刚刚上传到Google Play商店。 关于此存储库: 第五十七团队为BaseSticksProject提供的...

    钢筋混凝土污水池及提升泵站施工方案.doc

    课程设计污水处理

    PHP基于Web的subversion用户管理系统(源代码+设计说明书).zip

    PHP基于Web的subversion用户管理系统(源代码+设计说明书).zip

    node-v12.22.10-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    The Experiment 3 of Engineering Electromagnetics.pdf

    The Experiment 3 of Engineering Electromagnetics.pdf

    node-v12.11.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    JSP网络购物中心毕业设计(源代码+设计说明书).zip

    JSP网络购物中心毕业设计(源代码+设计说明书).zip

    卷积神经网络-基于VGGNet实现的遥感图像分类算法.zip

    卷积神经网络 卷积神经网络_基于VGGNet实现的遥感图像分类算法

    node-v0.12.10.tar.xz

    node-v0.12.10.tar

    转型计划gl.ppt

    转型计划gl.ppt

    node-v10.24.1-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    led.zip

    led.zip

    ASP+ACCESS实验室设备管理系统(源代码+设计说明书).zip

    ASP+ACCESS实验室设备管理系统(源代码+设计说明书).zip

    jsp网上超市设计与实现(源代码+设计说明书).zip

    jsp网上超市设计与实现(源代码+设计说明书).zip

    node-v11.12.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    商业分析工具:常用战略分析工具gl.ppt

    商业分析工具:常用战略分析工具gl.ppt

    行业分析模板--初学者必备gl.ppt

    行业分析模板--初学者必备gl.ppt

Global site tag (gtag.js) - Google Analytics