我有一个对象工厂,它分发一些“常量”、不可变对象(immutable对象)的实例。我希望保护这些对象免受客户端不良内存管理的影响。这就是我重写类的关键方法的方法。我是否遗漏了任何内容(代码或其他注意事项)?
- (id)retain
{
return self;
}
- (NSUInteger)retainCount
{
return UINT_MAX;
}
- (void)release
{
// nothing.
}
对后来的路过问题读者的更新:这是(故意)一个特殊情况的双黑钻石 cocoa 问题。如果您尝试创建常规单例,请参阅下面有关共享实例等的答案。这个问题(以及所选答案)属于“在选择此实现策略之前,您应该确保您知道自己在做什么” .
最佳答案
听起来您正在尝试创建一个单例。这是一种非常常见的模式,并且有很多关于它的文章。这些链接应该告诉您需要了解的所有信息:
http://www.mikeash.com/pyblog/friday-qa-2009-10-02-care-and-feeding-of-singletons.html
关于objective-c - 创建一个 "permanent"Cocoa 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831660/