在iOS上保存(私人)应用程序设置?

我知道NSUserDefaults保存/恢复用户的喜好。 什么是应用程序的等效类? 例如,应用程序可能有一个“上次运行”字段; 或者它可以具有用于在应用级别使用的设备的唯一标识的字段。

我的意图是将应用程序的设置(不是用户的设置)保存在Settings应用程序中,而不是在iTunes,Time Machine,{whatever}中备份这些设置。

对于Java和C#,我得到了很多噪音,但对于iOS / iPhone / iPad来说并不多。

如果您可以通过NSUserDefaults存储值,那么也可以存储应用程序首选项。

或者在您的项目中添加settings.plist并阅读(以后不会更改)

你可以使用像。,

 + (NSDictionary*)getBundlePlist:(NSString *)plistName { NSString *errorDesc = nil; NSPropertyListFormat format; NSString *plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"]; NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath]; NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc]; return temp; } + (id) getPropValue:(NSString *)PropertyName { // I am supposing you had add your app preferences on settings.plist. return [[Property getBundlePlist:@"settings"] objectForKey:PropertyName]; //here Property is my class name, then you can use value by //NSString *value = [Property getPropValue:@"setting1"]; } 

NSUserDefaults可以用于你所要求的。

 if (![[NSUserDefaults standardUserDefaults] boolForKey:@"shownPrompt"]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shownPrompt"]; // Show your prompt or whatever } 

这是一个工作代码片段。 如果密钥为假,则将其设置为true并显示提示。 下次这个代码运行时,键已经是真实的,所以提示不会显示。

NSUserDefaults是特定于当前设备上的当前应用程序,并且类似于NSMutableDictionary ,因为它是一个键值系统,不同之处在于,不是实例化自己的应用程序,而是为整个应用程序提供了一个通用共享实例,当应用程序退出时不会擦除。

NSUserDefaults是保存事物的最佳方式,例如是否显示了一些内容,上次运行的date等。阅读文档: https : //developer.apple.com/documentation/foundation/userdefaults

不要被“用户偏好”部分拖延。 你可以用它来保存任何你想要的东西(只要它是或可以被转换成一个实现<NSCoding>NSObject ,它基本上是指NSStringNSDictionaryNSArrayNSNumberUITextFieldintfloatbool等等) 。

只是为了澄清,你放在NSUserDefaults东西在任何情况下都不会在Settings应用程序中自动启动。 它将被完全保密和隐藏。 要在“设置”中显示某些内容,您需要向应用添加“设置”捆绑包,并手动向其中添加要为“设置”应用显示的每个值的密钥。

很难说你在问什么。 这听起来像NSUserDefaults是你所期待的,但你声称你已经知道它。 那么你的问题是什么?