Ios NSUserdefault和core数据
什么是默认值?以及如何使用它来存储应用程序的支架周围数据。Ios NSUserdefault和core数据,ios,nsuserdefaults,Ios,Nsuserdefaults,什么是默认值?以及如何使用它来存储应用程序的支架周围数据。 请澄清我对何时使用它们以及它们在性能方面如何有用的疑问?NSUserDefaults用于保存非常少量的数据,而其他方法有利于存储应用程序使用的大量数据 NSUserDefaults使之变得非常简单,因为您不必担心文件、实体、抓取等问题,…。所有这些都是在一行中完成的。该类的行为非常类似于称为属性列表(又称plist)的东西。plist只能存储什么类型的对象。plists可以存储的六种类型是: NSData NSString NSNumb
请澄清我对何时使用它们以及它们在性能方面如何有用的疑问?NSUserDefaults用于保存非常少量的数据,而其他方法有利于存储应用程序使用的大量数据 NSUserDefaults使之变得非常简单,因为您不必担心文件、实体、抓取等问题,…。所有这些都是在一行中完成的。该类的行为非常类似于称为属性列表(又称plist)的东西。plist只能存储什么类型的对象。plists可以存储的六种类型是:
NSUserDefaults
用于存储属于用户设置的值,即使在关闭并重新启动应用程序时也需要记住这些值。话虽如此,如另一个答案所示,我们应该只在NSUserDefaults
中放置轻量级对象
对于其他重负载,请保存并重新加载用户文件系统。对于涉及搜索已保存数据的内容,请使用核心数据
写入NSUserDefaults
:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Object", forKey: "yourKey")
let defaults = NSUserDefaults.standardUserDefaults()
if let value = defaults.stringForKey("yourKey")
{
print(value)
}
func setBool(value: Bool, forKey defaultName: String)
func setInteger(value: Int, forKey defaultName: String)
func setFloat(value: Float, forKey defaultName: String)
func setDouble(value: Double, forKey defaultName: String)
func setObject(value: AnyObject?, forKey defaultName: String)
func setURL(url: NSURL, forKey defaultName: String)
从NSUserDefaults
:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Object", forKey: "yourKey")
let defaults = NSUserDefaults.standardUserDefaults()
if let value = defaults.stringForKey("yourKey")
{
print(value)
}
func setBool(value: Bool, forKey defaultName: String)
func setInteger(value: Int, forKey defaultName: String)
func setFloat(value: Float, forKey defaultName: String)
func setDouble(value: Double, forKey defaultName: String)
func setObject(value: AnyObject?, forKey defaultName: String)
func setURL(url: NSURL, forKey defaultName: String)
其他有用的方便方法:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Object", forKey: "yourKey")
let defaults = NSUserDefaults.standardUserDefaults()
if let value = defaults.stringForKey("yourKey")
{
print(value)
}
func setBool(value: Bool, forKey defaultName: String)
func setInteger(value: Int, forKey defaultName: String)
func setFloat(value: Float, forKey defaultName: String)
func setDouble(value: Double, forKey defaultName: String)
func setObject(value: AnyObject?, forKey defaultName: String)
func setURL(url: NSURL, forKey defaultName: String)
存储大小:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Object", forKey: "yourKey")
let defaults = NSUserDefaults.standardUserDefaults()
if let value = defaults.stringForKey("yourKey")
{
print(value)
}
func setBool(value: Bool, forKey defaultName: String)
func setInteger(value: Int, forKey defaultName: String)
func setFloat(value: Float, forKey defaultName: String)
func setDouble(value: Double, forKey defaultName: String)
func setObject(value: AnyObject?, forKey defaultName: String)
func setURL(url: NSURL, forKey defaultName: String)
只要iPhone/iPad上有足够的空间,就可以存储默认值。所有这些值都存储在一个.plist文件中,这个文件非常小,大多数情况下小于1KB但要尽可能轻。使用
NSUserDefaults
类,您可以保存与应用程序或用户数据相关的设置和属性。例如,您可以保存用户设置的配置文件图像或应用程序的默认颜色方案。这些对象将保存在称为iOS
的“默认系统”
中。iOS默认系统在应用程序的所有代码中都可用,保存到默认系统的任何数据都将在应用程序会话中保持不变。这意味着,即使用户关闭应用程序或重新启动手机,保存的数据在下次打开应用程序时仍然可用
性能
NSUserDefaults
类在内部缓存这些值,因此查找速度非常快。与实例变量相比,[NSUserDefaults standardUserDefaults]
的开销非常小,如果在代码中执行了500万次,您甚至不会注意到它。这是我作为NSDefaultUser的演示使用而编写的代码
保存数据的步骤NSString*name=\u tf\u name.text; NSString*email=\u tf\u email.text; int age=[[u tf_age text]integerValue]
// Create Instance of NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// Set the object and YOU name the key, we are defining the key here
[defaults setObject:name forKey:@"firstName"];
[defaults setObject:email forKey:@"email"];
[defaults setInteger:age forKey:@"age"];
// Call Sync to Save Objects
[defaults synchronize];
//加载数据
// Get Saved Objects
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *name = [defaults objectForKey:@"firstName"];
NSString *email = [defaults objectForKey:@"email"];
int age = [defaults integerForKey:@"age"];
NSString *ageString = [NSString stringWithFormat:@"%i", age];
// Load UI
_tf_name.text = name;
_tf_email.text = email;
_tf_age.text = ageString;
遵循这一点-abhinav我对nsuserdefault有一个疑问,我们可以存储的最大数据/大小是多少