我可能会在标题中使用单词“singleton”使我的术语不正确。 我现在正在寻找一种好的技术。我有一个名为user的实体,用于存储登录数据的用户,例如用于发出服务器请求的会话密钥。我只想要其中一个实体存在。这样做有标准的技术吗?
到目前为止我所拥有的是
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"UserEntity" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil)
{
// Deal with error...
}
if ([array count]==0) {
//first run of app
}else if([array count]==1)
{
// id like the code to enter here after every app run except for the first one
}else
{
//dont want this to happen
}
答案 0 :(得分:3)
我使用Matt Gallagher在他的文章Singletons, AppDelegates and top-level data中描述的方法。
它使用宏来创建“合成单例”类,然后您可以从任何地方访问它。非常方便的会话,托管对象上下文等。否则你必须在任何地方通过这些。
答案 1 :(得分:2)
您的方法应该有效,并且具有灵活性。考虑一下您的应用的未来版本能够管理多个帐户的可能性;如果您将“单身人士”建模为常规实体,则可以轻松实现此目的。
如果您100%确定自己从未想过这样,那么您可以使用持久性商店的metadata
属性进行此类操作。