黑马程序员 - OC语言 - 单个对象内存管理(野指针)
2015-12-18 11:55
363 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
/*
一定要注意:
1)每个Targer创建完以后,默认的都是ARC模式
*/
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
// 创建一个对象
// 对象创建完成以后,默认的所有者就是自己所以引用计数为1
Dog *daHuangDog = [Dognew];
[daHuangDog ear];
// dhd 要进行 release
NSLog(@"daHuangDog retainCount = %lu",daHuangDog.retainCount);
// 如果一个对象已经被释放,这个对象就称之为僵尸对象
[daHuangDog release];
NSLog(@"daHuangDog retainCount = %lu",daHuangDog.retainCount);//值已经没有意义了
// 这句话默认情况下不报错,如果要让他报错要开启僵尸对象检测。
// [daHuangDog ear];
// daHUangdog 指针也就是野指针
}
return 0;
}
Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
-(void)ear;
@end
Dog.m
#import "Dog.h"
@implementation Dog
- (void)dealloc
{
// 提示已经释放成功
NSLog(@"狗挂了");
//
[super dealloc];
}
-(void)ear{
// 提示调用此方法
NSLog(@"狗正在吃一坨粑粑");
}
@end
/*
一定要注意:
1)每个Targer创建完以后,默认的都是ARC模式
*/
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
// 创建一个对象
// 对象创建完成以后,默认的所有者就是自己所以引用计数为1
Dog *daHuangDog = [Dognew];
[daHuangDog ear];
// dhd 要进行 release
NSLog(@"daHuangDog retainCount = %lu",daHuangDog.retainCount);
// 如果一个对象已经被释放,这个对象就称之为僵尸对象
[daHuangDog release];
NSLog(@"daHuangDog retainCount = %lu",daHuangDog.retainCount);//值已经没有意义了
// 这句话默认情况下不报错,如果要让他报错要开启僵尸对象检测。
// [daHuangDog ear];
// daHUangdog 指针也就是野指针
}
return 0;
}
Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
-(void)ear;
@end
Dog.m
#import "Dog.h"
@implementation Dog
- (void)dealloc
{
// 提示已经释放成功
NSLog(@"狗挂了");
//
[super dealloc];
}
-(void)ear{
// 提示调用此方法
NSLog(@"狗正在吃一坨粑粑");
}
@end
相关文章推荐
- 黑马程序员 - C语言 -手动管理内存快速入门
- C语言中的柔性数组
- vc++多线程案例
- 在C++中侦测内嵌型别的存在(rev#2)
- cRuntime函数之(strtol/wcstol)
- 黑马程序员 - OC语言 - NSMutableArray及基本使用
- 黑马程序员 - OC语言 - NSString的其他用法 (获取、转换、去掉)
- 黑马程序员 - OC语言 - NSRange使用(范围)
- effective c++学习笔记
- 开始学习C和C++
- 黑马程序员 - OC语言 - NSString前后缀检查及搜索
- 黑马程序员 - OC语言 - NSDictionary的介绍及使用
- 第三十四节
- C语言的注释与C++注释的转换
- 【异常/错误处理系列】C语言如何实现异常处理
- C++11: forwarding parameter packs and define my own version of make_shared
- VS2013 VC++ 项目引用的lib也需升级重新编译
- OC语言property关键字
- 巧用宏定义来简写C,C++代码
- VS2013 VC++ 编译遇到不支持非unicode字符集的错误