iOS - setObject 与 Synchronize

2023-12-05

新手问题。如果我将一个对象设置到 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 及更早版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS - setObject 与 Synchronize 的相关文章

  • iPad 的自适应布局

    我正在关注这篇文章在 ios 中构建自适应布局为 iOS 8 构建自适应用户界面 http www sitepoint com building adaptive user interfaces ios 8 它在 iPhone 上运行良好
  • CoreBluetooth 功能无法从 Singleton 运行

    所以我目前在 iPad 和 iPhone 之间建立了蓝牙连接 我已经在中创建了我的测试代码ViewController一切正常 现在我把它移到了 2 个经理类 第一个是CBCentralManager和一个用于CBPeripheralMan
  • 不确定如何在使用故事板时正确子类化 UIApplication

    我想在 X 次用户不活动 没有触发触摸事件 后返回故事板的初始视图控制器 经过一些研究 我发现检测不活动的最常见方法是触发 NSTimer 并在事件触发时重置间隔 为了检测触发的事件 我们在 UIApplication 的子类中重写 UIA
  • 如何在flutter插件中调试iOS原生代码?

    我想知道如何在插件中调试 flutter iOS 代码 我可以打开每当您创建插件时生成的示例应用程序 但我将插件代码视为二进制框架 因此我无法调试它 对于 android 这相当简单 我只需打开 A S 中的 android 文件夹即可 插
  • 编程界面方向更改不适用于 iOS

    因此 我有一个项目 当用户按下按钮时 我需要强制改变方向 我创建了一个github 上的示例应用程序 https github com vradenburg ForcedOrientationChange来演示这个问题 interface
  • 更改从 xib 加载的 UITableViewHeaderFooterView 上的背景颜色表示使用 contentView.backgroundColor

    I m 从 xib 文件创建 UITableViewHeaderFooterView https stackoverflow com a 20073742 35690 几乎一切都工作正常 问题是 现在当我尝试更改背景颜色 或者如果我在 xi
  • 在 iOS 7 上需要具有非半透明栏的 WantsFullScreenLayout 行为

    我希望能够让我的视图覆盖整个屏幕 位于导航栏和工具栏后面 并将导航栏和工具栏的半透明属性设置为NO 我想要不透明的条 在 iOS 7 之前 这很容易通过设置来完成wantsFullScreenLayout是 然而 在 iOS 7 中 我找不
  • Firebase 查询 - 查找包含字符串的子项

    我在使用 Firebase 查询时遇到了一些问题 我想查询对象 其中对象子值包含特定字符串 到目前为止 我有一些看起来像这样的东西 Firebase ref Firebase alloc initWithUrl https dinosaur
  • 如何为具有圆角的精灵设置物理体

    我创建了一个SKShapeNode通过以下方式 let sprite SKShapeNode rect CGRect x 20 y 10 width 40 height 20 cornerRadius 10 我也像这样设置了一个物理体 sp
  • 如何在代码中的UIToolBar中添加UIBarButtonItem

    我有标准 UIBarButtonItem UIBarButtonItem share UIBarButtonItem alloc initWithBarButtonSystemItem UIBarButtonSystemItemAction
  • Crashlytics 和答案套件的问题

    我在我的应用程序中使用 Crashlytics 来跟踪崩溃 并使用 Answers 工具包来处理自定义事件 我正在使用 pod 文件将框架集成到我的项目中 但是在添加两个 pod 时出现链接错误 pod Fabric pod Answers
  • 带有 HTML 的 UIActivityViewController

    当我将包含 HTML 内容的字符串作为数组元素传递给UIActivityViewController initWithActivityItems方法中 它不会在选定的 共享 控制器中将其呈现为 HTML 而是呈现 HTML 源 即标记而不是
  • 如何在当前视图上方创建半透明视图层?

    您可能以前见过这种情况 它在 ScoutMob 等消费时尚应用程序中变得非常流行 我正在尝试在启动时实现 60 的透明视图 该视图将覆盖我的主屏幕 解释如何使用主屏幕的功能并在点击时消失 我已经完成了整个应用程序 它从几年前就开始使用 xi
  • 使用 Xcode 资产目录缓存 UIImage

    我们都知道UIImage神秘的幕后缓存机制imageNamed 方法 在苹果的UIImage 类参考 https developer apple com library IOS documentation UIKit Reference U
  • Sqlite3 查询在 iOS 8.2 下变得非常慢

    我制作了一个可以在应用程序内使用 sqlite 数据库的应用程序 在 iOS 8 2 之前 它工作得很好 但更新后 查询方法的工作速度慢了大约 100 倍 我试图查找有关此问题的信息 但尚未找到任何信息 有人有同样的经历吗 这是我的方法 到
  • Cordova 构建 iOS 应用程序并打开模拟器,但未安装

    我正在 MacOS 上用 Cordova 制作一个 iOS 应用程序 当我跑步时cordova emulate ios该应用程序会构建并打开 iPhone X iOS 11 4 的模拟器 但它从未在模拟器中安装该应用程序 它仅显示模拟器主屏
  • iOS 框架问题:类在两者中均实现

    我正在开发一个使用第三方框架类的iOS框架项目 所以我在下面添加了第三方框架链接的框架和库部分 当我在 iOS 应用程序项目中添加自定义框架时 每个类都会收到此警告 objc 3139 类 class name 在两者中均实现 privat
  • 如何在iOS中像Android一样实现菜单

    我需要为 iOS 实现菜单 例如android menu表示导航按钮栏 右侧 如果我点击该菜单就会显示 我正在使用故事板 所以你想要这样的东西 甚至可以在风景中使用 我想我要花很长时间来解释 D 基本上我创建了一个自定义 UINavigat
  • 通过更改其优先级值来动画布局约束

    我有一个包含大量文本的标签 有一个用于折叠和展开标签高度的切换开关 此处名为 里拉套房 所以它会截断文本的结尾 我精心设置了垂直内容拥抱优先级和压缩阻力 因此内在尺寸比压缩阻力具有更高的优先级 高度限制 直接位于标签右侧的可选约束 设置为常
  • 如何在 Swift 中的标签上制作阴影效果?

    我不知道如何在标签上编写阴影代码 我有一个会改变的乐谱标签 因此无法仅对带有阴影的文本进行Photoshop处理 我需要对其进行编码 以便它始终自动在文本后面有一个模糊的阴影 有人可以举一些例子或提供帮助吗 人们说这是重复的 重复 是关于

随机推荐

  • 当文件确实存在时,C# System.IO.FileNotFoundException

    我正在尝试从 ASP NET Core 中的操作返回文件 public IActionResult GetFile string filePath return File home me file png application octet
  • Jqgrid。从键值中找到rowId

    我有一个基本的 jqgrid 实现 fsJqGrid jqGrid datatype local height 175 colNames FeatureId Name colModel name FeatureId index Featur
  • IIS7:缓存设置不起作用...为什么?

    我的 IIS7 web config 设置为以下内容 其中包含静态资产文件夹 不在 ASP NET 应用程序或任何其他内容中
  • ObServer 发出选择性 D-BUS 信号(单播信号)

    我遇到的情况是 我有一个 ObServer 对象和一组客户端 ObServer和客户端通过D BUS IPC 连接 ObServer 为所有客户端提供通用接口 但是 ObServer 有时需要通知客户端一些事件 客户端监听 ObServer
  • Android volley:如何处理错误响应

    我实现了一个带有 volley 库的 Android 应用程序来连接我的数据库 与 get 和 post 请求的连接有效 但服务器响应不起作用 发生这种情况是因为错误响应会自动捕获错误 例如 我的服务器响应代码为 201 表示登录成功 但齐
  • Camel 2.11批量聚合如何与单独的路由一起工作?

    首先有一个类似的未回答的问题将路由加入单个聚合器 我们有一些消费者路由 ftp file smb 从远程系统读取文件 简化了直接路由的测试 但与批量消费者的行为类似 from direct routeId id routeId setPro
  • Rails +omniauth + facebook - 检测到 csrf

    我正在努力通过现有的方式登录网站facebook帐户 所以我注册了一个facebook应用程序并存储api and secret in development rb and production rb文件 然后我用了omniauth fac
  • 如何仅打印python列表中的重复元素[重复]

    这个问题在这里已经有答案了 有没有内置的方法来打印 python 列表中存在的重复元素 我可以为此编写程序 我正在寻找的是是否有任何内置方法或相同的东西 For Ex 用于输入 4 3 2 4 5 6 4 7 6 8 我需要操作4 6 有的
  • 从 MySQL 迁移到 NoSQL 的示例? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 对于类似 Facebook 的网站 即 它是写入密集型并提供用户自定义页面 我想构建一个原型来研究以文档为中心的 NoSQL 架构是否是分片的良好替代方案 并减少单个主服务器 多个从
  • 在 numpy 数组内生成填充多边形

    我正在寻找一种基于一组多边形顶点将填充多边形 绘制 到 numpy 数组中的方法 我宁愿使用尽可能少的外部库 例如 我有一个 20x20 numpy 数组 我希望由点 3 12 8 18 13 14 11 6 和 4 6 界定的区域为填充
  • 错误:allowDefinition='MachineToApplication' 超出应用程序级别

    关于这个主题有大量的 SO 帖子 到目前为止 解决方案似乎是将 IIS 中的目录配置为应用程序 另一个常见的解决方案是从根文件夹中删除备份的 web config 文件 我的问题有所不同 因为我在 IIS Express 上运行 因此无法将
  • 如何从 QML 监听 C++ 信号?

    我有一个我称之为 C 服务 的东西 我想将其接口公开给 QML 我正在尝试使用QQmlContext s setContextProperty将对象链接到 QML 并从QML Connections block QML 不会像之前我没有在
  • 事件处理程序和侦听器以及事件冒泡和事件捕获

    我对 JavaScript 中的 事件监听器 事件处理程序 事件冒泡 和 事件捕获 感到困惑 我在互联网上搜索并查看了不同的网站 但是 我仍然无法理解一些差异 甚至基本条件 As 本文表明 事件处理程序已创建并侦听事件 这是否意味着附加到
  • 从终端调用时使用默认的 Python 而不是 Anaconda 安装

    我最近安装了 Anaconda 版本的 Python 现在当我打字时python进入终端后 它会打开 Anaconda 发行版而不是默认发行版 如何让它使用命令的默认版本python在 Linux 上 Ubuntu 12 04 精确的穿山甲
  • Lint:如何忽略“ 未翻译为 <语言>”错误?

    我无法编译 调试我们的 Android 应用程序 因为本地化文件还不完美 我的 IDE 验证工具Lint创建错误说 newCardsOrderVals 未翻译为 ar bg ca cs 使用 Ant 编译 安装 运行工作正常 但我想使用我的
  • 是否可以在 firebase 上运行 graphql 订阅?

    我想将 GraphQL 订阅与 Firebase 云功能结合使用 在我之前的问题中 我描述了当我将代码部署到 Firebase 时 它 让我崩溃了 Could not connect to websocket endpoint 我什至无法手
  • 在 C++ 类中使用

    我想使用
  • 大量圆的碰撞检测

    What is the best way to check collision of huge number of circles It s very easy to detect collision between two circles
  • Laravel 嵌套数组验证器

    我使用 Laravel Validator 类对数组进行一些基本验证 我的数组 employee name name employee address address employee department name deptname em
  • iOS - setObject 与 Synchronize

    新手问题 如果我将一个对象设置到 NSUserDefault 中 我是否还需要同步以确保该对象永久返回到 NSUserDefault 数据库中 我想我要问的是 setobject 是将对象永久放回到数据库中还是放入需要同步以确保永久存储的临