代码之家  ›  专栏  ›  技术社区  ›  rob5408

关于这一点,记忆管理的观点是什么?

  •  0
  • rob5408  · 技术社区  · 15 年前

    我正在检查日程表字典中的Day对象,想知道完成后如何处理Day指针。构建和分析并没有抱怨它,但它只是坐在那里嘲笑我。我觉得当函数完成时,它只是坐在那里,甚至可能每次通过循环都会创建一个新的函数。此外,每次通过循环释放day时,我最终都会释放原始对象。有什么想法吗?

    - (NSUInteger) showsInTheNext:(NSUInteger)days {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyyLLdd"];
    
        if(days == 0) days = 91;
        NSUInteger shows = 0;
    
        for (NSUInteger x = 0; x < days; x++)
        {
           Day *day = [self.schedule objectForKey:[dateFormatter stringFromDate:[self.date addTimeInterval:60*60*24*x]]];
           if((day != nil) && ([day.type isEqualToString:@"Show"])) shows++;
           //[day release];
        }
    
        [dateFormatter release];
        return shows;
    }
    
    2 回复  |  直到 15 年前
        1
  •  1
  •   fbrereto    15 年前

    这个 NSDictionary NSObject 字典 . 当你把它拿回来时,不需要额外的钱 retain 消息已发送,因此您应该放弃指针而不发送 release

    远离的 字典 释放

    您可以通过对 retainCount 以确保它不会改变。

        2
  •  1
  •   Marc W    15 年前

    Day 已经存在于您的 schedule 白天 正在创建。