在a =[ [NSDate date ] retain];之前,调用[a release];

解决方案 »

  1.   

    a = [NSDate date];
    这样创建的NSDate 对象是一个autorelease的对象。就像你描述的情况一样,可能会在某一时刻对象就被释放掉了。为了保证对象可用,使用retain 让对象常驻内存。也就有了你要提问的问题,内存管理首先要遵循一个原则就是“谁创建谁释放”,也就是要求你对retain过的对象调用release来保证对象的引用计数为0。至于什么时候释放,你可以在当前上下文结束后释放,也可以在确保没有别的对象使用的情况下来调用release来释放
      

  2.   

    在用完的地方release下就好了。