Gre*_*reg 71
NSUserDefaults 可以用于你所要求的.
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"shownPrompt"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shownPrompt"];
// Show your prompt or whatever
}
Run Code Online (Sandbox Code Playgroud)
这是一个有效的代码片段.如果键为false,则将其设置为true并显示提示.下次运行此代码时,该键已经为true,因此不会显示提示.
NSUserDefaults特定于当前设备上的当前应用程序,并且类似于NSMutableDictionary它是一个键值系统,区别在于不是实例化您自己的应用程序,而是整个应用程序的通用共享实例,应用程序退出时删除.
NSUserDefaults非常适合保存诸如是否显示某些内容,上次运行日期等内容.请阅读以下文档:https://developer.apple.com/documentation/foundation/userdefaults
不要被'用户偏好'部分推迟.你可以用它来保存任何你想要的(只要它是或可以转换为NSObject它实现<NSCoding>,这基本上意味着NSString,NSDictionary,NSArray,NSNumber,UITextField,int,float,bool,等).
只是为了澄清,在任何情况下,您输入的内容NSUserDefaults都不会在"设置"应用中自动显示.它将完全保密并隐藏起来.要在"设置"中显示某些内容,您需要向应用添加"设置"分发包,并为要在"设置"应用中显示的每个值手动添加密钥.
Muj*_*key 11
如果您可以通过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"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15721 次 |
| 最近记录: |