Objective-C学习笔记(内存管理、property参数)4.9

这篇具有很好参考价值的文章主要介绍了Objective-C学习笔记(内存管理、property参数)4.9。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.引用计数器retainCount:每个对象都有这个属性,默认值为1,记录当前对象有多少人用。

   为对象发送一条retain/release消息,对象的引用计数器加/减1,为对象发一条retainCount,得到对象的引用计数器值,当计数器为0时自动调用对象的dealloc方法。

   手动发送消息:-(id)performSelector:(SEL)@Selector

        Person *p = [Person new];

        SEL s = @selector(func);

        [p performSelector:s1];   等于 [p func];

2.MRC:手动引用计数/手动内存管理:手动发送retain和release。

   ARC:自动引用计数/手动内存管理: 自动 发送retain和release。

3.野指针:OC中的野指针:指针指向的对象已经被回收了。避免野指针:设置nil。

4.回收内存空间的本质:代表变量所占的空间可以分配给其他人了。

5.僵尸对象:1个已经被释放的对象,但是这个对象所占的空间还没被分配。

6.内存泄漏:对象没有被及时回收,一直在内存中,直到程序结束。

7.MRC模式下,对象时OC对象,setter和dealoc应该写内存管理机制。

8.@property:自动生成私有属性,属性的getter和setter方法的声明和实现。

   @property(参数1,参数2)数据类型 名称;

    参数: 多线程相关的:atomic:默认值,setter方法有线程安全锁,效率低;nonatomic:反之。

                setter方法相关的:assign:默认值,setter方法直接赋值;retain:生成符合MRC内存管理的setter方法:先判断对象是否是同一个,如果不是,release旧的,retain新的。

                只读只写:readwrite:默认值,同时有getter和setter;readonly:只有getter。、

                生成getter和setter方法名称相关的:可以修改setter和getter方法名称。

9.@class:A包含B、B包含A的循环嵌套问题,用@class标注这是一个类。

                文章来源地址https://www.toymoban.com/news/detail-849511.html

到了这里,关于Objective-C学习笔记(内存管理、property参数)4.9的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Effective Objective-C 学习(二)

    “属性”(property)是 Objective-C 的一项特性,用于封装对象中的数据。Objective-C 对象通常会把其所需的数据保存为各种实例变量。实例变量一般通过“存取方法”来访问。其中,“获取方法”(getter)用于读取变量值,而“设置方法”(setter)用于写入变量值。开发者可以令

    2024年02月20日
    浏览(46)
  • Effective Objective-C 学习(四)

    在执行后台任务时,GCD 并不一定是最佳方式。还有一种技术叫做 NSOperationQueue,它虽然与 GCD 不同,但是却与之相关,开发者可以把操作以 NSOperation 子类的形式放在队列中,而这些操作也能够并发执行。 GCD是纯C的API,而NSOperationQueue是Objective-C的对象。这意味着使用GCD时,任

    2024年02月19日
    浏览(38)
  • Effective Objective-C 学习第二周

    “属性”(property)是 Objective-C 的一项特性,用于封装对象中的数据。Objective-C 对象通常会把其所需的数据保存为各种实例变量。实例变量一般通过“存取方法”来访问。其中,“获取方法”(getter)用于读取变量值,而“设置方法”(setter)用于写入变量值。开发者可以令

    2024年01月22日
    浏览(45)
  • Effective Objective-C学习第一周

    OC是一种消息型语言,使用的是“消息结构”而非“函数调用”,由smalltalk演化而来。使用消息结构的语言运行时执行的代码由运行环境来决定,而使用函数调用的语言由编译器决定。 OC将堆内存管理抽象出来了。不需要使用malloc或者free来分配或释放对象所占的内存。OC运行

    2024年01月17日
    浏览(41)
  • 【学习iOS高质量开发】——熟悉Objective-C

    Objective-C和Java、C++都是面向对象语言但是语法上有些许不同。OC使用“消息结构”而不是“函数调用”,这二者的区别主要体现在: 使用消息结构的语言,其运行所应执行的代码由运行环境来决定;使用函数调用的语言,则由编译器决定。OC的重要工作都是由运行期组件来完

    2024年01月19日
    浏览(47)
  • 【Effective Objective - C】—— 熟悉Objective-C

    Objective-C通过一套全新语法,在C语言基础上添加了面向对象特性。Objective-C的语法中频繁使用方括号,而且不吝于写出极长的方法名,这通常令许多人觉得此语言较为冗长。其实这样写出来的代码十分易读,只是C++或Java程序员不太能适应。 Objective-C语言学起来很快,但有很

    2024年01月16日
    浏览(45)
  • 第一章 熟悉Objective-C

    Objective—C语言是由Smalltalk演化而来,后者是消息型语言的鼻祖,所以该语言使用的“消息结构”而非“函数调用”。 1. 消息和函数调用之间的区别 关键区别在于: 使用消息结构的语言,其运行所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。

    2024年01月18日
    浏览(39)
  • use gnustep objective-c

    专注于概念,而不是迷失在语言技术细节中 编程语言的目的是成为一个更好的程序员; 也就是说,在设计和实现新系统以及维护旧系统方面变得更加有效 header preprocess interface implementation method variable declare and expression comment basic integer set and float set enum type void type derive type incl

    2024年02月14日
    浏览(41)
  • 【KVC补充 Objective-C语言】

    2024年02月15日
    浏览(39)
  • Objective-C日期NSDate使用

    2024年01月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包