您的位置:首页 > 编程语言 > C语言/C++

黑马程序员 - 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: