我实现了旧的init作为工厂模式,但在一个特定的情况下(而不是其他!)我收到分析器关于内存泄漏的警告。事实上,看看可可内存管理政策规则,可以返回+1保留计数对象的是alloc,而不是init。
因此,看来:
self并从init返回一个新对象是违反规则的。所以..。我们一直都在做错事吗?
发布于 2013-06-09 14:02:03
正如gaige所说,如果你发布一段代码而不是解释,它会更加清晰。
无论如何,您可以将您的工厂移到类方法中,这样您就不会有这样的问题了。我的意思是这样的:
MyClass* instance = [MyClass instanceWithParameters:params];
@interface MyClass
+ (MyClass*) instanceWithParameters:(ParamType)params;
@endhttps://stackoverflow.com/questions/17009872
复制相似问题