1、指针分类
(1)强指针:默认的情况下,所有的指针都是强指针,关键字strong
(2)弱指针:_ _weak关键字修饰的指针
2、什么是ARC?
简单的说就是,不用我们自己去关注对象的内存问题,系统会自动帮我们去管理,我们只需要了解一点,
那就是当某个对象没有强指针指向它时,系统就会释放它。
3、那是不是要将代码放在自动释放池里面呢?
由于对象只要没强指针指向,它就会释放的原理,我们可以将代码放在任何地方,但是你得控制的是,
当你需要释放这个对象时,要保证它没有强指针指着它就可以来;
4、既然ARC下我们不可以掉用[super delloc] 那复写父类的delloc时怎么保证对象被清除呢?
上一段代码:
//猫类的声明,它是继承动物的
#import "Animal.h"
@interface Cat : Animal
@end
//实现
#import "Cat.h"
@implementation Cat
- (void)dealloc
{
NSLog(@"cat ealloc");
}
@end
//动物类的声明
#import <Foundation/Foundation.h>
@interface Animal :NSObject
-(void) run;
@end
//动物类的实现
#import "Animal.h"
@implementation Animal
- (void)dealloc
{
NSLog(@"ani dealloc");
}
@end
#import <Foundation/Foundation.h>
#import "Cat.h"
int main(int argc,constchar * argv[]) {
@autoreleasepool {
Animal * ani = [Animalnew];
Cat * cat = [Catnew];
}
return0;
}
2015-08-28 10:45:27.922 Test[63070:2080697] cat ealloc
2015-08-28 10:45:27.924 Test[63070:2080697] ani dealloc
2015-08-28 10:45:27.925 Test[63070:2080697] ani dealloc