首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >目标C-这是不是一个实施工厂的坏地方?

目标C-这是不是一个实施工厂的坏地方?
EN

Stack Overflow用户
提问于 2013-06-09 13:02:37
回答 3查看 849关注 0票数 3

我实现了旧的init作为工厂模式,但在一个特定的情况下(而不是其他!)我收到分析器关于内存泄漏的警告。事实上,看看可可内存管理政策规则,可以返回+1保留计数对象的是alloc,而不是init

因此,看来:

  1. 严格地说,释放self并从init返回一个新对象是违反规则的。
  2. 互联网上的许多地方都在推广这种技术,而且由于alloc/init的串联特性,这种方法确实有效。
  3. 分析者有时抱怨这一点,有时却不抱怨。

所以..。我们一直都在做错事吗?

EN

Stack Overflow用户

发布于 2013-06-09 14:02:03

正如gaige所说,如果你发布一段代码而不是解释,它会更加清晰。

无论如何,您可以将您的工厂移到类方法中,这样您就不会有这样的问题了。我的意思是这样的:

代码语言:javascript
运行
复制
MyClass* instance = [MyClass instanceWithParameters:params];

@interface MyClass
+ (MyClass*) instanceWithParameters:(ParamType)params;
@end
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17009872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档