//OC中类名是离不开星号的*,除非是继承
@property int age;
@property Book *book;
@interface Student :NSObject
//给某个特定的方法注释,-对方法进行分组
分段注释:
#pragma mark -生命周期方法
#pragma mark构造方法
- (id)initWithAge:(int)newAge{
if(self = [superinit])
{
_age = newAge;
}
return self;
}
#pragma mark回收对象
- (void)dealloc{
NSLog(@"student: age: %zi被销毁了",_age);
[superdealloc];
}
如果自己手动实现了getter 和 setter, Xcode久不会自动生成@synthesize. 也就不会自动生成_book (_book 是由@synthesize实现的).
内存计数器变化只有:alloc new retain release (copy不是)
疑问:
00:24:40
内存泄漏:
解决办法:
OC中没有空指针概念,就是给空发一个释放内存消息也不会错,例如: [nil release].
[stu release]
[stu release] //野指针
[nil release] //空指针野指针会报错,空指针不会报错。
预防下面这种情况:
本文深入探讨了Objective-C中的内存管理机制,包括对象创建、生命周期管理、内存泄漏防范及野指针与空指针的区别。通过实例解析构造方法、生命周期方法及内存回收过程,帮助开发者理解并有效避免内存问题。
959

被折叠的 条评论
为什么被折叠?



