Ios NSUserdefault和core数据

Ios NSUserdefault和core数据,ios,nsuserdefaults,Ios,Nsuserdefaults,什么是默认值?以及如何使用它来存储应用程序的支架周围数据。 请澄清我对何时使用它们以及它们在性能方面如何有用的疑问?NSUserDefaults用于保存非常少量的数据,而其他方法有利于存储应用程序使用的大量数据 NSUserDefaults使之变得非常简单,因为您不必担心文件、实体、抓取等问题,…。所有这些都是在一行中完成的。该类的行为非常类似于称为属性列表(又称plist)的东西。plist只能存储什么类型的对象。plists可以存储的六种类型是: NSData NSString NSNumb

什么是默认值?以及如何使用它来存储应用程序的支架周围数据。
请澄清我对何时使用它们以及它们在性能方面如何有用的疑问?

NSUserDefaults用于保存非常少量的数据,而其他方法有利于存储应用程序使用的大量数据

NSUserDefaults使之变得非常简单,因为您不必担心文件、实体、抓取等问题,…。所有这些都是在一行中完成的。

该类的行为非常类似于称为属性列表(又称plist)的东西。plist只能存储什么类型的对象。plists可以存储的六种类型是:

  • NSData
  • NSString
  • NSNumber
  • NSDate
  • 安萨雷
  • 国家统计局词典
  • 用法:
    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有一个疑问,我们可以存储的最大数据/大小是多少