当我完成这些日期指针时,其中一个或两个都需要[release]。我怎么知道这个?我不确定,因为我没有明确地做init。
NSDate *date = [NSDate date];
NSDate *date = [dateWithTimeIntervalSince1970:100000000];
答案 0 :(得分:5)
不,这些方法的两个返回日期都是自动释放的。你不需要担心他们的记忆管理,但要成为一个好公民,当你完成它们时将指针设置为nil将是一个好主意。
作为一般规则,您可以遵循我称之为“CARN”的规则。在Cocoa / Cocoa中,任何在其中包含 Copy,Alloc,Retain,或 New 的方法都会返回需要在某些时候释放的对象。这些是应用于返回保留计数为+1的对象的方法的命名约定。调用这些方法的类“拥有”该对象,并负责在它完成时释放它。
希望这有帮助。
答案 1 :(得分:5)
两者都是自动释放的,也就是说你不需要自己释放它们。经验法则是,如果您发送+ alloc或-copy或明确保留它,则您拥有一个对象:
如果您拥有一个对象,则必须将其释放。 + new是+ alloc和-init的快捷方式。