文章 2017-10-04 来自:开发者社区

Objective-C:对象之间循环引用会造成死循环

对象之间的循环引用        两个对象A、B,有可能会出现一种特殊的情况:A中包含B的实例变量;B中又包含A的实例变量,如果两个实例变量都是强引用(A有B实例变量的所有权,B也有A的实例变量的所有权),然后再两个对象销毁时,会出现A、B都不能正常销毁的情况。      类A: // A.h // 02-循环引用 /...

文章 2017-09-07 来自:开发者社区

Objective-C:保留计数器思想的详解(对象的保留和所有权的释放)

对象的保留和所有权的释放: int main(int agrs,char *argv[]) {   @autoreleasepool{      Person *person = [[Person alloc]initWithName:@“Tom"];    //retainCount=1      [person setName: name]; &nbsp...

文章 2017-08-10 来自:开发者社区

Objective-C:OC内部可变对象和不可变对象的深(复制)拷贝问题思考:

OC内部:可变对象和不可变对象的深(复制)拷贝问题思考:   不可变对象:  例如NSString对象,因为NSString对象是常量字符串,所以,不可以更改其内容,但是可以修改指向该字符串的指针指向。当对NSString对象做深拷贝时,如果是copy复制方式,其实就是浅复制,只是复制了同一个对象的指针;如果是mutableCopy复制方式,系统会分配一个新的内存空间用来存放复...

文章 2017-06-09 来自:开发者社区

Objective-C:MRC(引用计数器)在OC内部的可变对象是适用的,不可变对象是不适用的(例如 NSString、NSArray等)

引用计数和字符串 内存中的常量字符串的空间分配与其他对象不同,他们没有引用计数机制 凡是自定义的对象都有引用计数机制; OC内部中对象分为可变对象(NSMutableString等)和不可变对象(NSString、NSArray等), 不可变对象不适用于引用计数的机制,可变的对象适用引用计数机制。         1 // main.m 2 // ...

文章 2017-05-02 来自:开发者社区

《编写高质量代码:改善Objective-C程序的61个建议》——建议4:优先使用对象字面量语法而非等效方法

本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第1章,第1.4节,作者:刘一道,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议4:优先使用对象字面量语法而非等效方法 很多刚从其他编程语言转到Objective-C的程序员,往往一看到长长的函数名就会感到崩溃,这种语法让消息的传递像一个英语句子,虽有不足但确实大大增强了可读性。比如想初始....

文章 2017-05-02 来自:开发者社区

《编写高质量代码:改善Objective-C程序的61个建议》——建议15:存在公共键时,字典是在对象之间传递信息的绝佳方式

本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第2章,作者:刘一道,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议15:存在公共键时,字典是在对象之间传递信息的绝佳方式 NSDictionary不是仅仅维持对象有序或无序的集合,它根据给定键来存储对象,然后可以用于检索。使用字符串对象作为字典的键,这是最佳的做法,如图2-9所示。 ...

文章 2017-05-02 来自:开发者社区

《编写高质量代码:改善Objective-C程序的61个建议》——建议14:有序对象适宜存于数组,而无序对象适宜存于集

本节书摘来自华章出版社《编写高质量代码:改善Objective-C程序的61个建议》一 书中的第2章,作者:刘一道,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议14:有序对象适宜存于数组,而无序对象适宜存于集 虽然可以使用C语言数组来保存标值的集合,甚至是对象指针,但是在Objective-C代码中,大多数集合是Cocoa和Cocoa Touch集合类中的某一个类的实例,如NSA....

文章 2016-11-03 来自:开发者社区

Objective-C 检测运行时对象的内存大小

malloc_size 返回指针所指向对象字节数。但是这种方法不会考虑到对象成员变量指针所指向对象所占用的内存。跟instrument 的 Allocation计算出来的值相同。 官方解释: The malloc_size() function returns the size of the memory block that backs the allocation pointed to b.....

文章 2016-06-30 来自:开发者社区

[精通Objective-C]对象和消息传递

[精通Objective-C]对象和消息传递 参考书籍:《精通Objective-C》【美】 Keith Lee 目录 精通Objective-C对象和消息传递 目录 对象 创建对象 初始化对象 重构Atom类并创建子类 工厂方法 消息传递 发送消息 消息转发 附录前一章节创建的Atom类 对象 创建对象 NSObject类中用于创建类实例(即对象)...

文章 2016-05-03 来自:开发者社区

Objective-C之集合对象的内存管理

集合对象的内存管理 本小节知识点: 【掌握】集合对象的内存管理 【理解】集合对象内存管理总结 1.集合对象的内存管理 当一个对象加入到集合中,那么该对象的引用计数会+1 当集合被销毁的时候,集合会向集合中的元素发送release消息 NSMutableArray *arr = [[NSMutableArray alloc] init]; Person *p = [[Person ...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注