摘要: 对象的保留和所有权的释放:int main(int agrs,char *argv[]){ @autoreleasepool{ Person *person = [[Person alloc]initWithName:@“Tom"]; //retainCount=1 [pe... 阅读全文
posted @ 2015-08-14 19:46 XYQ全哥 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 深复制:复制对象时,如果对象中包含对象类型的实例变量,要对对象类型的实例变量也要做对象复制。新对象中的对象类型实例变量和旧对象中的对象类型实例变量指的是不同的对象。不管任何一方实例变量对对象做修改,都互相不影响对方所指向的对象的内容。 .h文件 .m文件 .m主函数 测试结果如下: 阅读全文
posted @ 2015-08-14 17:00 XYQ全哥 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 浅复制:复制对象时,如果对象中包含对象类型的实例变量,只是复制指针。新对象中的对象类型实例变量和旧对象中的对象类型实例变量指的是同一个对象。任何一方实例变量对对象做修改,另一方实例变量指向的该对象也就改变了。 .h声明文件 .m实现文件 main.m主函数 测试结果如下: 阅读全文
posted @ 2015-08-14 16:52 XYQ全哥 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 对象之间的循环引用 两个对象A、B,有可能会出现一种特殊的情况:A中包含B的实例变量;B中又包含A的实例变量,如果两个实例变量都是强引用(A有B实例变量的所有权,B也有A的实例变量的所有权),然后再两个对象销毁时,会出现A、B都不能正常销毁的情况。 类A: // A.h // 02-循环引用 // 阅读全文
posted @ 2015-08-14 16:37 XYQ全哥 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 内存管理:1、OC的对象都是分配在堆里的 Perosn *person = [[Person alloc]init]; Person *person //指针类型的变量,放在栈里。 [[Person alloc]init] //在堆里创建的对象,并初始化。 真正的含义: 用指针变量指... 阅读全文
posted @ 2015-08-14 16:04 XYQ全哥 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 内存管理:1、OC的对象都是分配在堆里的 Perosn *person = [[Person alloc]init]; Person *person //指针类型的变量,放在栈里。 [[Person alloc]init] //在堆里创建的对象,并初始化。 真正的含义: 用指针变量指... 阅读全文
posted @ 2015-08-14 16:00 XYQ全哥 阅读(115) 评论(0) 推荐(0) 编辑