在Java中,我会做以下事情:
final class Person {
private Person() { }
public static Person makeNewPerson() {
Person p = new Person();
// any initialization code...
return p;
}
}
在Objective-C中,我的第一次尝试是:
@interface Person : NSObject
// How to hide constructors here?
+ (Person *) makeNewPerson;
@end
@implementation Person
+ (Person *) makeNewPerson
{
Person *p = [[Person alloc] init];
// setup...
return p;
}
@end
我想这样做的原因主要是因为我将拥有此类的许多实例,并且我想使用缓存来重用实例,而不是允许创建副本。
谢谢!
答案 0 :(得分:1)
在objective-c中没有必要为方法创建声明。只创建实现,只需要使方法“私有”。
私有引号,因为无法制作真正的私有方法。