10-retain和release的简单使用
来源:互联网 发布:手机破解版软件盒子 编辑:程序博客网 时间:2024/05/16 07:09
// Student.h
// 内存管理1-retain和release的简单使用
//
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property int age;
@end
// Student.m
// 内存管理1-retain和release的简单使用
#import "Student.h"
@implementation Student
@synthesize age = _age; // 在xcode4.5环境下可以省略
- (void)dealloc {
NSLog(@"%@被销毁了", self);
[super dealloc];
// 一定要调用super的dealloc方法,而且最好放在最后面调用
}
@end
// main.m
// 内存管理1-retain和release的简单使用
//
#import <Foundation/Foundation.h>
#import "Student.h"
void test() {
Student *stu = [[Student alloc] init]; // 1
// z代表无符号
NSLog(@"count:%zi", [stu retainCount]);
[stu retain]; // 2
NSLog(@"count:%zi", [stu retainCount]);
[stu release]; // 1
NSLog(@"count:%zi", [stu retainCount]);
[stu release]; // 0
// [stu release]; // 会发生野指针错误,也就是说访问了不属于你的内存
}
void test1() {
// Student对象的计数器永远为1,所以不可能被释放
[[Student alloc] init].age = 10;
[Student new].age = 10;
// 上面的代码都有内存泄露
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
}
return 0;
}
- 10-retain和release的简单使用
- retain和release 的使用
- ios内存管理1-retain和release的简单使用
- ios内存管理1-retain和release的简单使用
- retain 和 release成对使用
- retain 和release 的区别
- retain和release
- retain和release
- Xcode4.2中的release,retainCount, retain“不能”使用的理解和的解决办法
- 使用 Instruments 之 Allocations 查看 对象的 release 和 retain 的操作记录
- 内存管理 release retain autorelease 的简单原则
- 创建不会retain和release对象的NSMutableArray和NSMutableDictionary
- cocos2dx中的retain和release
- cocos2dx中retain和release
- 黑箱中的 retain 和 release
- 黑箱中的 retain 和 release
- cocos2dx中Ref的 retain()和release()的区别
- Xcode4.2不能使用 release ,retainCount, retain的解决办法
- 关于shell脚本中 >/dev/null 2>&1的记录
- 十个坏习惯毁掉你的牙齿 刷牙时使劲漱口
- 外卖O2O硝烟初起 巨头们各自是啥思路?
- 将两列数据合成一列数据
- ios实现图片动画效果
- 10-retain和release的简单使用
- Java: FreeMarker的配置和使用
- 如何在mysql中删除某个数据库中的所有的表
- #ifndef、#def、#endif说明
- hibernate N+1问题 Hql的fetch
- eclipse中汉字乱码
- 烟台巨乳缩小华美有专家
- 在MFC中实现对象之间数据的传递。
- 关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案