OSX NSUserDefaults 不工作

2024-01-11

这段代码在我的应用程序中总是给我“否”。它确实可以在我复制它的任何其他项目中工作...所以我的 standardUserDefaults 一定搞砸了,但我绝对不知道这是如何发生的以及如何解决它!

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"myKey"];

BOOL test = [defaults boolForKey:@"myKey"];
// test is ALWAYS NO here!

有人可以提示我,从哪里开始或者如何摆脱这个吗?

这是一个包含 swift 和 Objective C 的混合项目,当我将其直接放入我的 applicationDidFinishLaunching 中时,它会在我的 AppDelegate.swift 中获得相同的行为

let defaults = NSUserDefaults.standardUserDefaults()        
defaults.setBool(true, forKey: "myKey")

let test = defaults.boolForKey("myKey")
// test ALWAYS false here   

在有人问之前: - 是的,即使在它们之间调用了同步 - 是的,这是整个代码,行与行之间没有任何内容...设置并在之后正确获取它不起作用


我找到了一个解决方案,如何修复它,但没有找到为什么会发生这种情况,而且到目前为止还没有干净、好的方法。

如果有人可以解释这一点并给我一个更好的解决方案,那就这样做!

  1. 问题是: 如果删除沙盒应用程序的容器,您还会删除 NSUserDefaults 的 plist,并且不会再次创建它,因此 NSUserDefaults 根本不起作用。

  2. 解决方法: 正如我在这里发现的https://ind.ie/labs/blog/app-sandbox-updating-nsuserdefaults-fails-after-deleting-apps-container-directory/ https://ind.ie/labs/blog/app-sandbox-updating-nsuserdefaults-fails-after-deleting-apps-container-directory/是系统永久书签的问题。 好吧,仅仅清空垃圾箱对我来说不起作用,但有效的是:我只是创建了丢失的文件!

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

OSX NSUserDefaults 不工作 的相关文章

  • 在 wkwebview 中启用摄像头和麦克风访问

    我有一个针对移动设备优化的网络应用程序 它利用getUserMedia访问网络摄像头和麦克风资源 我正在将这个应用程序包装在WKWebView因为我想提供原生应用程序体验 我知道 iOS 不允许通过浏览器访问相机 但是有什么方法可以使用本机
  • UIPopViewController 不工作

    我有一个 xib 文件 其中有 h 和 m 链接 在 xib 中有一个带有 textView 的 UIView 我想要对该视图执行的操作是 当您单击按钮时将其作为 UIPopViewController 打开 这是我的代码 IBAction
  • 如何使用 UIScrollView?

    我该如何使用UIScrollView 请给我一个带有一张滚动图像的简单示例 这将使您深入了解UIScrollView控制 学习 UIScrollView 的基础知识 https stackoverflow com questions 159
  • 如何让程序在登录时自动启动?

    如何设置菜单栏应用程序在登录时自动启动 我希望这是默认的 我可以简单地通过在 info plist 中添加一个 bool 来做到这一点吗 此解决方案仅适用于非沙盒应用程序 LSSharedFile此解决方案中使用的功能仅适用于非沙盒应用程序
  • 确定显示的视图是被推送还是来自导航栏中的后退按钮

    有没有办法判断新控制器是来自导航后退按钮还是被推入堆栈 我只想重新加载数据以推送导航堆栈 而不是按下后退按钮 从 iOS 5 0 开始 您可以执行以下操作 void viewWillAppear BOOL animated super vi
  • 我可以提高当前模态视图控制器的动画速度吗?

    我正在编写一个绘图应用程序 当用户单击工具栏中的项目时 该应用程序会显示工具视图控制器 然而 我的几位 Beta 测试人员报告说 工具面板打开速度太慢 我使用标准的 presentModalViewController animated 调
  • 同一视图中的多个 UIAlertView

    我有两个带有确定 取消按钮的 UIAlertView 我通过以下方式捕获用户响应 void alertView UIAlertView alertView didDismissWithButtonIndex NSInteger button
  • Mac OSX 上使用 Java 7 的透明 JFrame/JWindow

    我们有一个屏幕共享小程序 它打开 Swing JFrame 并使用 Robot 类捕获空框架后面的屏幕 用户可以单击框架并与小程序后面的任何内容进行交互 这在 Windows 上运行良好 并且用于 Apple 的 Java 版本 但对于 M
  • 使用 Xcode 资产目录缓存 UIImage

    我们都知道UIImage神秘的幕后缓存机制imageNamed 方法 在苹果的UIImage 类参考 https developer apple com library IOS documentation UIKit Reference U
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 流星 OSX 错误:SQLITE_CANTOPEN:无法打开数据库文件

    我运行了以下命令 meteor create myapp 并收到以下错误消息 错误后重试 Error SQLITE CANTOPEN 无法打开数据库文件 stack Getter 错误后重试 Error SQLITE CANTOPEN 无法
  • 网络扩展 - NEVPNManager

    苹果在 iOS 8 中发布了一个新的框架 NetworkExtension 我想使用 NEVPNManager 从应用程序启动 VPN 连接 或者此框架还有其他用途吗 有人有关于这个框架的信息或例子吗 我在developer apple c
  • 通过派生指针调用基类函数

    Objective C 如何使用派生指针调用基类函数 其中 foo 在派生类中被重写 本质上相当于这个 C 代码 base b ptr 0 derived d ptr new derived d gt base foo 我认为这应该相当简单
  • 使用 OpenGL ES 绘制地球仪

    我正在尝试渲染一个地球仪 上面有地图的球体 OpenGL ES 1 1 on iOS 我能够绘制球体并绘制边界 但有一个问题 在我看来 不面向前方的线条也被绘制在屏幕上 像这样 在图片中 您可以看到美国渲染得很好 但您可以看到澳大利亚渲染在
  • 创建 UITextView 全部内容的位图

    我正在尝试获取 UITextView 内容的位图 我可以通过以下方式获取当前屏幕上 UITextView 内容的位图 UIGraphicsBeginImageContext myTextView bounds size myTextView
  • PreferredStatusBarStyle 不起作用[重复]

    这个问题在这里已经有答案了 我以前用过setStatusBarStyle在我的项目中 它工作正常 但它已被弃用 所以我使用preferredStatusBarStyle 那不起作用 知道我已经 调用方法setNeedsStatusBarAp
  • 如何通过双击使该 file.sh 可执行?

    首先我用的是Mac 接下来 我需要执行这个 file sh 我们将调用它 每次我需要执行它时 我都必须打开终端并输入 cd Users Jacob Documents folderWithFileInIt bash file sh 这没关系
  • 无法使用“class”作为 NSDictionary 中的键

    我正在尝试使用一个类作为NSDictionary 我看了答案这个问题 https stackoverflow com questions 730076 using class as key in nsdictionary我所拥有的几乎是一样
  • 我的 sudo 命令不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 mac 10 8 2 mountain lion 当我尝试使用 sudo 命令时 我得到这个 sudo private etc sudoer
  • 如何创建一个具有两个视图的 UIViewController,根据单击的按钮显示一个或另一个视图

    我对 iOS 开发还很陌生 但我陷入了困境 目前 我正在使用一个选项卡控制器在两个视图控制器 列表和地图视图 之间切换 这使得使用情节提要来配置两个视图的外观变得更加容易 现在需求已经改变 应用程序需要有一个带有分段控件的视图控制器 单击该

随机推荐

  • 按依赖顺序编写 Sql Server 数据库中所有视图/函数/过程的脚本

    Sql Server 2008 可能还有大多数其他版本 Management Studio 有一个 生成脚本 选项 理论上可以使用所有对象编写整个数据库的脚本 右键单击 任务 生成脚本 它适用于大多数情况 但是当您使用它为数据库中的所有视图
  • 无法使用 gcloud 将私有 IP (VPC) 添加到新的 Google Cloud SQL 实例

    我一直在尝试创建一个新的 CloudSQL 实例 并从一开始就附加了私有 IP 文档唯一提示我的是添加 VPC 网络 我正在尝试添加默认值 首先 我为我的项目启用正确的 API 服务 gcloud services enable servi
  • 为什么 nil / NULL 块在运行时会导致总线错误?

    我开始大量使用块 很快就注意到 nil 块会导致总线错误 typedef void SimpleBlock void SimpleBlock aBlock nil aBlock bus error 这似乎违背了 Objective C 忽略
  • 无法理解css的position属性

    If p 标签位置是绝对的div连续出现 但在评论绝对位置之后div下降 即使position relative 谁能告诉我为什么会发生这种情况 before after box sizing border box main content
  • 如何使隐式 ScrollViewer 出现在左侧而不是右侧

    我有一个ScrollViewer当列表中有足够的对象时 它会出现在右侧 如何让它出现在左侧
  • 在jshell中创建自定义反馈模式

    从 jshell 中 set Feedback 的文档来看 有以下几种内置模式 verbose normal concise and silent 是否可以打造一种兼具简洁和静音功能的反馈模式 或者我们可以改变上述任何一种模式吗 或者我们可
  • AS3使用Loader加载受htaccess保护的文件

    我正在尝试将网站上托管的外部 SWF 加载到本地 SWF 文件中 外部 SWF 位于使用 htaccess 的密码保护目录中 这是我当前尝试使用的代码 var loaderUrlRequest URLRequest new URLReque
  • jquery .validate() 变量错误消息

    我在此网站上使用多种语言 并希望以不同的语言显示错误 我想知道是否可以在自定义错误消息中使用变量 这是 JavaScript 代码片段 form validate ajax url notification php dataType jso
  • commitAllowingStateLoss() 和 commit() 片段

    我想在网络后台操作后提交一个片段 我在成功的网络操作后调用 commit 但如果活动进入暂停或停止状态 它就会导致应用程序崩溃 并显示 IllegalState 异常 所以我尝试使用 commitAllowingStateLoss 并且它现
  • 将 SWIG 与采用 std::string 作为参数的方法结合使用

    我使用 SWIG 来包装我的 C 类 有些方法有一个const std string 作为参数 SWIG 创建一个名为的类型SWIGTYPE p std string但是 在 C 中调用该方法时 不能仅为此传递普通字符串 下面的示例只是 S
  • 如何将数据附加到 JTA 事务? (或唯一标识它)

    我有一个 getStockQuote 函数 它将从股票市场获取某个符号的当前股票报价 我的目标是在 JTA 事务中 第一次调用 getStockQuote 将获取股票报价 但同一事务中的所有后续调用将重用相同的股票报价 例如 它不会尝试获取
  • 检查javascript中多维数组中的键是否存在

    希望是一个简单的问题 为什么要检查多维数组中是否存在键 a new Array Array a 0 0 1 a 0 1 2 if a 1 2 undefined alert sorry that key doesn t exist else
  • assembleDebug.dependsOn 不起作用

    首先 这不是这个的重复 错误 在项目 app 上找不到属性 assembleDebug https stackoverflow com q 38547400 770467 问题 自从更新到Android Studio 2 2 gradle插
  • 在 SQL Server 中编写架构脚本

    我想在 SQL Server 数据库中创建一个架构 数据库中还有一堆其他脚本 我可以编写现有架构的脚本吗 我的意思是 假设我们有一张桌子 我们可以 编写一个脚本CREATE TABLE脚本 我们可以编写一个创建架构的脚本吗 谢谢你们的期待
  • 良好的Java进程控制库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 进程控制是出了名的糟糕 主要是由于 Java VM JDK 类 例如 java lang P
  • 在 bash 脚本中使用 find 命令

    我刚刚开始使用 bash 脚本 并且需要对多种文件类型使用 find 命令 list find home user Desktop name pdf 此代码适用于 pdf 类型 但我想同时搜索多种文件类型 例如 txt 或 bmp 您有什么
  • 在无效 Syskeypress 上禁用 MessageBeep

    简单的问题 如果用户按 Alt Whatever 并且没有与之关联的热键 通常程序会产生 MessageBeep 我可以调用哪些 API 函数来避免这种情况 处理 WM KEYDOWN WM KEYUP WM SYSKEYDOWN 和 WM
  • Symfony2 和 Angular。用户认证

    我正在开发一个涉及 Symfony2 和 AngularJs 的 Web 应用程序 我对网站中用户身份验证的正确方法有疑问 我在 API REST 在 Symfony 中内置 中构建了一个函数 该函数通过请求中传递的参数对用户进行身份验证
  • 如何使用jQuery调用c# webservice获取返回值

    我想使用 jQuery 调用名为 c ashx 的 C Web 服务 该服务检查该用户名是否有效并以字符串形式返回错误消息 如果 c webservice 的返回值是字符串值 我应该为 data 和 content type 添加什么 jQ
  • OSX NSUserDefaults 不工作

    这段代码在我的应用程序中总是给我 否 它确实可以在我复制它的任何其他项目中工作 所以我的 standardUserDefaults 一定搞砸了 但我绝对不知道这是如何发生的以及如何解决它 NSUserDefaults defaults NS