oc内存回收问题,求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oc内存回收问题,求解相关的知识,希望对你有一定的参考价值。

技术分享

Person.h

#import <Foundation/Foundation.h>
 
@interface Person : NSObject
 
@end

Person.m

#import "Person.h"
 
@implementation Person
 
- (void)dealloc
{
    NSLog(@"Person dealloc:%p",self);
}
 
@end

main.m

#import <Foundation/Foundation.h>
#import "Person.h"
 
Person * test1();
 
int main(int argc, const char * argv[]) {
    Person *p1 = test1();
    NSLog(@"p1:%p",p1);
    p1 = nil;
 
    Person *p2 =test1();
    NSLog(@"p2:%p",p2);
    p2 = nil;
 
    Person *p3 =test1();
    NSLog(@"p3:%p",p3);
    p3 = nil;
 
    return 0;
}
 
Person * test1()
{
    Person *p1 = [Person new];
    return p1;
}

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因

以上是关于oc内存回收问题,求解的主要内容,如果未能解决你的问题,请参考以下文章

OC内存管理

OC内存管理

OC的内存管理

OC加强之内存管理

OC 内存管理:MRC与ARC

iOS开发入门 ? OC语言·笔记四