三种内存管理机制:
引用计数、ARC(自动引用技术)、垃圾回收(在iphong和ipad中不能用)
内存管理的特点:
每个对象有一个或多个所有者,所有权表示对其指向的对象的引用计数>=1当使用alloc new copy mutableCopy 创建对象时,拥有对象所有权 计数+1retain +1 retain count 为引用计数当使用完之后需要放弃所有权 release,语句中一定要包括alloc new copy retain, 才需要releaseautorelease : 移交给autoreleasepool释放,延时释放dealloc:当对象retain count为0,系统会发送消息给dealloc释放对象的内存平衡法则:在任何一个作用域内,要有retain count +-平衡
retain assign
@property(
nonatomic,retain)
NSString* name;
@property(
nonatomic,
assign)
double real;
-(
void)setName:(
NSString*)aName{
[aName retain];
[name release];
name = aName;
}
-(
void)setName:(
NSString*)aName{
if(name!=aName){
[name release];
name = [aName retain];
}
}
setter方法的使用
-(
id)initWithName:(
NSString*)aName{
if(
self=[
super init]){
name = [aName retain];}
}
dealloc方法
凡是把对象成员作为数据成员的类一定要重载dealloc方法 因为在对象初始化时对象成员被计数两次,故需要dealloc来平衡
-(
void)dealloc{
self.name =
nil;
[
super dealloc];
}
转载请注明原文地址: https://ju.6miu.com/read-500082.html