问题标签 [userdefaults]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
140 浏览

ios - 使用 NSUserDefaults 保存和读取 PDFDocument

我有一个 PDFDocument

我想保存在 userdefaults

在这个函数中

现在我想阅读表中的用户默认值

并添加了userdefault 而不是 files[indexPath.row]我是否更正了 nsuserdefault 中的保存以及如何阅读这部分中的 userdefault,这意味着我想阅读一个 PDF 文档

0 投票
2 回答
136 浏览

swift - 我的全局数组的 UserDefault 代码有什么问题?

试图通过 UserDefault 存储一个数组,但 Xcode 给了我一个错误。错误消息是线程 1:信号 SIGABRT,控制台显示“NSInvalidArgumentException,原因:尝试插入非属性列表对象”。我以前使用以下代码将数据存储在数组中:

这很好用。这是使用 UserDefault 存储的代码,它给了我错误:

这是一个全局数组,我想存储整个数组。我想这与我在 UserDefault 中编写数组的方式有关,因为对我来说,我似乎正在尝试存储不存在的东西。或者我错过了什么?

0 投票
2 回答
354 浏览

ios - 将变量与 UserDefaults 同步的正确方法

我想在设置值时直接与 UserDefaults 保持变量同步。我已经这样做了:

它工作正常,但它是正确的方法吗?

如果是这样,那么数组呢?

如果我添加一个元素tagsList.append(0),新值是否存储在 UserDefaults 中?

更新

这是我在操场上的东西: 在此处输入图像描述

0 投票
4 回答
8722 浏览

swift - 如何检查 userDefault 是否为空?

如果 userDefault 为空,我试图拒绝访问某个视图控制器,但代码似乎不起作用。更清楚一点,我将收藏列表保存到 userDefault。这是我的代码:

错误是索引超出范围,这意味着整个块被忽略(此块之后的代码运行并且由于用户默认为空,因此在尝试检索不存在的信息时崩溃)。

有趣的是,代码在我第一次尝试进入 viewController 时有效(它拒绝我访问)。但是如果我收藏标记一个对象(保存到userDefault),然后取消收藏同一个对象(userDefault变为空),并进入viewController,程序崩溃。

我努力了:

...同样的问题仍然存在。在 print() 中,在我最喜欢的标记之后,日志告诉我 FAV EXISTS,然后是不喜欢的标记,然后尝试访问该页面(即使 userDefault 现在应该为空)。

我也尝试过其他线程的代码。从另一个线程解决我的问题的建议代码是:

我不确定如何实现它?我在哪里使用这个?它有什么作用?

知道有什么问题吗?

0 投票
4 回答
955 浏览

ios - iOS KVO - 检测何时再次设置相同的值

是否可以以一种不仅检测值是否更改,而且检测相同值是否再次设置的方式使用 KVO?我目前仅在值更改时才收到通知(与先前设置的不同)。每次设置值时我都需要接收通知(即使它与之前设置的值相同)。我怎样才能做到这一点?

我的代码:

0 投票
1 回答
122 浏览

swift - 如何将 Button 的 .setTitle 参数放在 UserDefaults 和 viewDidLoad 中

也许你们中的一些人知道如何将clearButton.setTitle参数放入UserDefaults并在之后放入覆盖func viewDidLoad() {

这是我试图在viewDidLoad准备密钥之前放置的参数,但我认为 defaults.set是不正确的

谢谢你的帮助 BR Ula

0 投票
1 回答
25 浏览

ios - 将 segued 数据存储在单独的视图控制器上(swift4)

我的代码从文本字段中获取文本并转到单独的视图控制器。问题是它只能存储 1 个 segue 条目。每次按下按钮时,新的都会替换旧的。如何在 vc2 上将每个新条目存储到 segue。

风险投资

两个VC

0 投票
1 回答
37 浏览

swift - 从两个单独的 SKScene 中检索并立即更新高分

在我的 GameScene 中,我有一个在游戏结束时通过 UserDefaults 保存的分数。下面是我保存分数的 GameScene 代码。

一旦玩家失去所有生命,游戏就会将您带回主菜单场景。在这个场景中,如果玩家最后的分数高于他们之前的高分,我想立即检索并更新主菜单场景中的高分数字。但由于某种原因,它只是不断更新用户在游戏结束时获得的每个分数,无论它是高于还是低于上一个高分。我究竟做错了什么?下面是我的主菜单场景。当我打印“newScore”和“getScore”时,我确实看到了正确的值,但是当涉及到在需要时更新高分时,我的代码肯定是错误的。

0 投票
1 回答
692 浏览

swift - 引用类型/子类化,以及对 Swift 4 Codable 和编码器/解码器的更改

当我尝试在 Swift 4 中使用 Codable 升级和减少代码时,我正在努力理解类/引用类型的行为以及这与更改的关系。

我有两个类——一个包含所有持久数据的超类,我保存到 UserDefaults(带有坐标的地名和字符串),以及一个包含我不需要的额外临时信息(天气数据)的子类对于超类坐标)。

在 Swift 3 中,我曾经这样保存数据:

SuperClass 符合 NSObject & NSCoding 它还包括所需的初始化解码器和编码功能。一切都很好。

在尝试切换到 Swift 4 和 codable 时,我修改了 SuperClass 以符合 Codable。SuperClass 现在只有一个基本的初始化程序,并且没有来自 Swift 3 的编码器/解码器的东西。这种新方法不会发生 KeyedArchiving(如下)。子类保持不变。不幸的是,我在尝试的线路上崩溃了?encoder.encode [给线程 1:EXC_BAD_ACCESS (code=1, address=0x10)]。我的假设是编码器与相同的引用类型混淆,其中一个是 SuperClass 和一个 SubClass(s​​ubClassArray[0] === superClassArray[0] 是真的)。我认为这可能有效:

然后,不是创建一个空的 superClassArray,而是使用:superClassArray = subClassArray,如上所示,我将其替换为单行:

这行得通。同样,假设是因为我传入了类引用类型中的值,并且没有创建 superClassArray = subClassArray。此外,正如预期的那样, subClassArray[0] === superClassArray[0] 为假

那么为什么 Swift 3 中的“旧东西”可以工作,即使我在 let superClassData = NSKeyedArchiver.archivedData(withRootObject: superClassArray) 之前使用了 superClassArray = subClassArray 行?通过在 Swift 4 中创建与旧的 Swift 3 编码器/解码器相同的数组,我是否基本上实现了相同的结果?是循环/娱乐

谢谢!

0 投票
1 回答
862 浏览

ios - swift Xcode 读取应用程序设置

我是 swift/ios 编程的新手。我创建了一个带有设置的小应用程序,但我似乎无法读取值。

我在 Bundle.main.InfoDictionary 或 UserDefaults.standard.dictionaryRepresentation() 中找不到我的设置“digit_preference”

我可以在手机中正确查看我的应用程序设置。(数字设置为 2) Bundle.settings