保留和释放传递给类方法的对象的最佳实践是什么?
例如,如果您有一个像这样声明的“类变量”:
static NSString *_myString = nil
...这样做是正确的:
+ (void)myClassMethod:(NSString *)param {
_myString = param;
}
...它的缺点是调用者需要在参数上保持非零保留计数,以免它被过早释放。或者,可以这样做:
+ (void)myClassMethod:(NSString *)param {
[_myString autorelease];
_myString = [param retain];
}
...它的缺点是如果没有相应的类级dealloc
调用,它会泄漏内存。或者是否应该完全避免这种类变量欺骗,也许使用一个以更传统的方式管理这些对象的生命周期的单例类?
我正在使用的代码是非常漂亮(但仍然是新的)Objective Resource 项目(http://www.iphoneonrails.com/)。