黑马程序员技术交流社区
标题:
内存泄露学习笔记
[打印本页]
作者:
ff774411
时间:
2015-10-6 11:40
标题:
内存泄露学习笔记
本帖最后由 ff774411 于 2015-10-6 11:44 编辑
对象使用的过程中被赋值了nil,导致内存泄露
Person
*p = [[
Person
alloc
]
init
];
NSLog
(
@" p->retainCount = %ld"
,p.
retainCount
);
p =
nil
;
//
设置对象为
nil,
实际上让
p
指向了一个特殊的地址(无效地址)
[p
release
];
// [nil release];
向
nil
发送
release
消息,不会让引用计数
-1
值为
nil
的对象的
retainCount = 0
的
NSLog
(
@" p->retainCount = %ld"
,p.
retainCount
);
只要还有人在使用某个对象,那么这个对象就不会被回收;只要你想使用这个对象,那么就应该让这个对象的引用计数器
+1
;当你不想使用这个对象时,应该让对象的引用计数器
-1
;
谁创建,谁
release
a、如果你通过
alloc,new,copy
来创建了一个对象,那么你就必须调用
release
或者
autorelease
方法
b、不是你创建的就不用你去负责
谁
retain
,谁
release
只要你调用了
retain
,无论这个对象时如何生成的,你都要调用
release
有始有终,有加就应该有减。曾经让某个对象计数器加
1
,就应该让其在最后
-1.
作者:
杰杰
时间:
2015-10-6 22:00
这个是OC啊。。 c还没看完。。。
作者:
Eric_h
时间:
2015-10-7 22:35
都已经看到oc了,很快
作者:
秦时明月汉时关
时间:
2015-10-8 01:23
youxinle,bucuodexexiadu
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2