- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我刚刚注意到我的 **NSUserDefaults**
中存在一个键经常返回 nil。好像有一半的时间正确的,另一半不是。我说了一半,但我没有意味着它的翻转,它只有 40-50% 我认为它不起作用。当我写入初始值时,我立即调用同步。我使用这个 key 作为应用程序我在新用户注册时设置的版本。
以下代码返回 nil:
#define kDBrevision @"revision"
NSString *rev = [[NSUserDefaults standardUserDefaults] objectForKey:kDBrevision];
当我启动应用程序并仅监控该值时(没有写入任何 NSUserDefaults),该值有时是有效的完全不修改 NSUserDefaults。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSString *r = [[NSUserDefaults standardUserDefaults] objectForKey:kDBrevision];
NSLog(@"revision %@", r);
_exit(1);
我不知道为什么会这样。我在我的电脑上运行 iOS 10设备连接到 Xcode 8.2.1。有人有想法么?谢谢
编辑:我开始与苹果公司讨论解决这个问题并发现如果你有文件保护已完全打开,这可能是导致此问题的原因不时出现,但苹果告诉我,我的特殊案例(这是我目前唯一确定的案例)是一个错误。这种情况是当您使用 Xcode 在它应该在设备上启动应用程序时不会像这样失败,它偶尔会失败。不知道什么时候或是否会固定。相反,我将我的关键字符串从默认值移动到钥匙串(keychain)。
最佳答案
这似乎是 Xcode 8 和/或 iOS 10 的错误。我自己遇到了它并最终将案例缩小到 UserDefaults 间歇性地返回 nil 而实际上有 key 的数据。具体来说,我设置了一次数据,然后去掉set逻辑,只执行get逻辑,如此反复,有时取值,有时取nil。
我将我的运行方案更改为使用发布配置,并在没有附加调试器的情况下在设备上运行该应用程序,问题消失了,也就是说,每次执行时获取逻辑都会产生正确的值(~30 次)。
这里还有一些讨论:
iOS 10 with XCode 8 GM caused NSUserDefaults to intermittently not work
iOS 10, NSUserDefaults Does Not Work
关于ios - NSUserDefaults objectForKey 有时为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41756036/
当我使用此代码从名为“fileList”的文件名数组中获取字符串时,我取得了成功: cell.timeBeganLabel.text = [[[self.fileList objectAtIndex:
我正在尝试存储一些值来使用它们,但我正在编写这段代码,并且在控制台中打印了值,但是当我尝试将该值分配给 dateComp.day 时,它返回 nil,而我没有知道为什么,零你知道为什么会发生这种情况吗
正在尝试检查项目中数据的有效性(项目是 NSDictionary) 我认为这应该可行,但我确实进入了第二个 if 并崩溃了: 发送到实例的无法识别的选择器因为 galleryArr 是 (null)
在文档中 https://www.parse.com/docs/ios/guide#relations-using-pointers它说在提供的示例中,您可以找到创建游戏的用户 // say we h
我在运行代码时遇到错误。罪魁祸首是我从下面的 plist 访问字符串: NSString *sImageFile = [dictionary objectForKey:@"answerCorr
大家好!当我构建这个时,我在 objectForKey 上收到警告...警告说; “从不兼容的指针类型传递‘objectForKey:’的参数 1”有谁知道如何解决这个问题吗? - (void)rev
我有一个类,用于在数组中设置对象。在这个类中,我有一个自定义的“initWithDictionary”,我在其中解析 JSON 字典。但是,当我遇到 NSNull 时,这会使我的应用程序崩溃。为了解决
我有这段代码来读取首选项。控制台输出为1,但窗口未设置为NSModalPanelWindowLevel。我尝试使用 1 而不是 @"1",但这也不起作用。 NSUserDefaults *defaul
[我已经阅读了 Cocoa 内存管理规则,但仍然想确定,并且想知道这是否是好的形式。] 我的类有一个可变字典 ivar: NSMutableDictionary *m_Dict; ... m_Dict
这是我的代码: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) state
-(NSMutableDictionary *)request:(NSString *)requestString { NSString *filepath = [[NSBundle main
我正在尝试做一些相对简单的事情。我的 bundle 中有一个 .plist,我正在尝试将其加密保存到文档目录中。现在,在我尝试添加加密之前,它运行良好。然而,新的崩溃又出现了。 这是我保存 .plis
我正在尝试使用以下代码加载 UIButton 和 UITextField,其中包含基于单击的 UISegmentedControl 的当前段的信息,但它会导致 SIGABRT 崩溃。这是代码: - (
我想用其他值替换数组的内容, 这是我的数组值: [Arr objectAtIndex:i] = "End_Date" = "31 Mar 2014";
我有一部分代码返回 numberOfRowsInSection。 代码 for (NSDictionary *consoleDictionary in [self arrayFromJSON]) {
我正在尝试使用从我的服务器作为 JSON 响应获得的字典。当我打印字典的描述时,一切都井井有条 Printing description of dict: { category = 1
我基本上得到这个错误 'NSInvalidArgumentException', reason: '-[__NSCFConstantString objectForKey:]: unrecognize
长话短说,我正在查看我的 32 位 iPhone 应用程序中的性能问题。在此过程中,我删除了将我限制为 32 位的第 3 方库,当我为 arm64 构建时,我发现与所述库无关的一段代码速度提高了 2
我刚刚注意到我的 **NSUserDefaults** 中存在一个键经常返回 nil。好像有一半的时间正确的,另一半不是。我说了一半,但我没有意味着它的翻转,它只有 40-50% 我认为它不起作用。当
我有一个带有 UIViewController 的 iOS 项目,其中包含一个名为 sizeSegmentedControl 的 UISegmentedControl。我希望 sizeSegmente
我是一名优秀的程序员,十分优秀!