------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