Objective c 并非所有引用都已发布,1个仍然有效

Objective c 并非所有引用都已发布,1个仍然有效,objective-c,memory-leaks,Objective C,Memory Leaks,我正在学习Objective-C中计算引用的保留和释放方法,但Instruments表示,这仍然是MyClass的一个引用,代码: #import <Foundation/Foundation.h> #import "MyClass" int main(int argc, const char * argv[]) { @autoreleasepool { MyClass *obj; for (int i=0; i < 200000; i++){

我正在学习Objective-C中计算引用的保留和释放方法,但Instruments表示,这仍然是
MyClass
的一个引用,代码:

#import <Foundation/Foundation.h>
#import "MyClass"

int main(int argc, const char * argv[])
{

@autoreleasepool {

    MyClass *obj;

    for (int i=0; i < 200000; i++){

        obj = [[MyClass alloc] init];
        [obj setSomeValue:100];

        NSLog(@"itineration %i", i);

        [obj release];
    }
}//@autoreleapool
}//main

为什么仪器在MyClass中显示“16LiveBytes”“1#Living”“199999#Transient”“200000#total”?应该是0,对吗

你为什么不使用ARC?@CrimsonChris也许OP需要更多内存管理方面的经验。使用ARC似乎还活着。不正常对吗?如果我查找剩余引用的内存地址,则显示为空,没有地址。。。所以我认为这是某种乐器的错误。那么,让我们先回答CrimsonChris的一个非常重要的问题:为什么不使用ARC?如果只使用ARC,很难陷入内存问题,而且没有什么好的理由不使用ARC。除非你能想出一个不使用ARC的好理由,否则这里的正确答案是“使用ARC”
@interface MyClass : NSObject

@property int someValue;

@end