本帖最后由 香草芭芙 于 2015-5-14 19:48 编辑
Person.h- #import <Foundation/Foundation.h>
- @interface Person : NSObject
- + (instancetype)person;
- @end
复制代码 Person.m- #import <Foundation/Foundation.h>
- #import "Person.h"
- @implementation Person
- + (id)person
- {
- return [[self alloc] init];
- }
- - (void)dealloc
- {
- NSLog(@"我想被释放");
- }
- @end
复制代码
main.m
- #import <Foundation/Foundation.h>
- #import "Person.h"
- int main(int argc, const char * argv[])
- {
- Person * p1 = [Person person]; // 这个为什么不释放呢???
- Person * p2 = [[Person alloc] init]; //这个 被自动释放了,
- return 0;
- }
复制代码
打印结果:
只有p2打印"我想被释放" , 求解惑啊...
用类方法创建的对象不能释放, 如果关闭ARC ,加个 release的话 可以释放...
|
|