zoukankan      html  css  js  c++  java
  • XCode提示 "Just Leaking" 错误的解决方法

    今天随便写了一个测量代码运行时间的小程序,代码是这样的:

    NSDate* d1=[NSDate date];
    
    //dosomthing
    
    NSDate* d2=[NSDate date];
    NSLog(@"time: %f",[d2 timeIntervalSinceDate:d1]);

    当我通过 run->console 查看日志输出时,出现了" *** _NSAutoreleaseNoPool(): Object 0x36acd0 of class NSCFDate autoreleased with no pool in place - just leaking" 。

    对于Autorelease的对象,如果没有AutoreleasePool的话,就会提示内存泄露的错误。可问题是我怎么知道哪些对象是Autorelease的,哪些不是呢?在此发现了一个规律:如果对象不是用[[object alloc] init(withXXX)] 创建的,就是Autorelease的。

    正确的写法:

    NSAtuoreleasePool* pool=[NSAutoreleasePool new];
    NSDate* d1=[NSDate date];
    
    //dosomthing
    
    NSDate* d2=[NSDate date];
    NSLog(@"time: %f",[d2 timeIntervalSinceDate:d1]);
    [pool drain]
    
  • 相关阅读:
    Oracle 函数
    Oracle select into from 和 insert into select
    SQL 子查询
    Java ThreadLocal 学习
    Structs 2
    Spring知识点
    java循环HashMap两种方法的效率比较
    Spring 面试复习
    Hibernate 知识点复习
    java 面试 复习 II
  • 原文地址:https://www.cnblogs.com/hjblog/p/2037344.html
Copyright © 2011-2022 走看看