这个问题困扰了我很多。 selectedDate也是NSDate的对象。 如果我删除mark1处的行,该项目将正常运行。 如果没有,这个项目将在我调用此方法后关闭。 问题出在哪儿? 非常感谢!
NSDate *selectedData_c = [self.selectedDate dateByAddingTimeInterval:60 * 60 * 8];
self.label = (UILabel *)[nibLoadedCell viewWithTag:1];
label.text = [NSString stringWithFormat:@"%@-%@-%@",[[selectedData_c description] substringWithRange:yearRange],[[selectedData_c description] substringWithRange:monthRange],[[selectedData_c description] substringWithRange:dayRange]];
[selectedData_c release]; // mark1
return cell;
答案 0 :(得分:3)
您不需要释放它,它是autorelease
对象。通常,您只会发布自己alloc
或copy
编辑的内容。
答案 1 :(得分:1)
selectedData_c
无需释放,因为dateByAddingTimeInterval
方法将返回autorelease对象。
答案 2 :(得分:1)
没有。 “dateByAddingTimeInterval”不包含单词alloc,copy,retain或mutableCopy。因此,你不对那个记忆负责。这是一个客观的命名标准。
请注意,如果您希望在释放字符串后仍然保留该数据,则应复制它;根据合同,您不对该记忆负责,但您也不能保证它将超出提供给您的对象的范围。
答案 3 :(得分:0)
你不应该release
它,它是autorelease
'。请阅读Apple发布的Memory Management Rules。它们很有意义,它们可以很容易地在iOS平台上进行内存管理。