- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
新手问题。如果我将一个对象设置到 NSUserDefault 中,我是否还需要同步以确保该对象永久返回到 NSUserDefault 数据库中?我想我想问的是,“setobject”是将对象永久性地放回数据库中,还是放入需要同步以确保永久性存储的临时存储中?
例如://下面我在添加一行数据后在 NSUserDefaults 中放置了一个新的列表副本
userDefaults.setObject(newMutableList, forKey: "itemList")
//我是否还需要立即同步以确保数据库永久更新?
userDefaults.synchronize()
我的代码在没有同步的情况下工作,这意味着我不需要它。但我想确保跳过同步的使用不会在未来的其他场景中导致问题。
提前致谢。
最佳答案
在 iOS 7 及更早版本上:
当您调用 -setObject:forKey: 时,NSUserDefaults 会在未来大约 10 秒内自行安排同步操作。发生这种情况时,到那时为止的所有内容都会保存到持久存储中。这里的想法是,您可以自由地使用 set 和 get 方法,而无需支付每次访问磁盘的显着性能成本。
在 iOS 8 上,NSUserDefaults 的工作方式不同,延迟是几毫秒,而不是 10 秒,所以 -synchronize 几乎没有用。
在 iOS 12 上,-synchronize 的所有剩余使用都是不必要的。请注意,可能仍有应用想要调用它的情况,因为它们支持 iOS 11 及更早版本。
关于iOS - setObject 与同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589162/
setObject:forKey 和 setObject:forKeyedSubscript 方法有什么区别吗? 我正在使用 Objective-C NSMutableArray。对我来说,两者的功能
新手问题。如果我将一个对象设置到 NSUserDefault 中,我是否还需要同步以确保该对象永久返回到 NSUserDefault 数据库中?我想我想问的是,“setobject”是将对象永久性地放
我在这里错过明显的东西吗? 我有以下使用org.xerial:sqlite-jdbc:3.21.0对SQLite本地数据库执行查询的方法。 public List> executeQuery(Stri
我正在后台做一些事情。我也尝试将对象写入标准用户默认值。从 iOS 9 开始,它就崩溃了。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEU
有这样的问题。 我有一些实体类Appartment、Landlord等。现在我正在创建ApartmentDaoImpl,即Apartment的DAO实现。原始类型的一切都很清楚,我可以获得landlo
我有一个单例类,在它的 init 方法中,我设置了一个 NSMutableArray,稍后当我保存它时,应用程序随机崩溃并显示这个崩溃日志,我很确定 recordUploadCnt 不能为nil,但是
我想将来自请求参数的字符串列表作为单个参数传递给 preparedStatement.setObject()。这里我将对象列表转换为单个字符串。 因此,在将这个转换后的字符串传递给 setObject
我已将变量声明为 var optionDictionary : NSMutableDictionary! 尝试在函数中为该变量设置对象,但出现错误 Could not find member 'set
下面两行等效吗? 1. [[NSUserDefaults standardUserDefaults]removeObjectForKey:@“示例 key ”] 2. [[NSUserDefaults
问题是我正在改变 NSDictionary,但即使在获得 mutableCopy 之后,应用程序也会崩溃。 下面是复制的方法: + (NSMutableDictionary *)updateQuery
今天遇到了一个比较迷惑的问题: 当我的应用程序启动时,我正在下载一些东西,在解析响应后,我将数据写入 NSUserDefaults。现在它工作正常,直到我最近发现有时我的整个 UI 会卡住并且在我重新
PreparedStatement.setObject的 Javadoc 说只传递 null 值是不安全的,并建议改用 setNull,这需要传递列 DB 类型。 由于在 Java 中判断空值的类型并
我需要用 NSUserDefaults 保存一个我从 jSON 获得的数组,问题是它只保存第一个字符串而不是所有数组。因此,如果数组类似于 NewYork、London、Rome .. 它只保存 Ne
我有obj-c代码 [dictionary setObject:[[notification object] objectForKey:@"key"] forKey:@"anotherKey"]; 我
我最近在研究运行时序列化并遇到了 ISerializationSurrogate界面。我很困惑它是 SetObject然而方法。 签名是: 对象 SetObjectData(对象对象,System.R
PreparedStatement 的.setObject 方法是否可以用于任何数据类型(String、Integer、 Double、Date、DateTime、Byte Array 等)由 MyS
我能否对所有数据类型(如 String、int 或双)? 如果我使用它会有什么潜在问题? protected void fillStatement(PreparedStatement stmt, Ob
我在 UINavigation 环境中使用它。我有customClassA。它继承customClassB,它的对象之一是 NSMutableDictionary。 我在 viewController
我们有解决方案吗? 我的代码是这样的: preparedStatement.SetObject(i , MyArray); 这里,MyArray 是从表中获取的记录数组。现在,只要上面的语句找到 nu
我确定我正在尝试编写的一个小型 iPhone 程序中遗漏了一些东西,但是代码很简单并且编译没有任何错误,所以我看不出错误在哪里。 我设置了一个 NSMutableDictionary 来存储学生的属性
我是一名优秀的程序员,十分优秀!