NSCserDefaults上的EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 getValueForKey:方法。

时间:2016-06-01 10:24:54

标签: nsuserdefaults exc-bad-access kern-invalid-address

我在使用NSUserDefaults时遇到了一个奇怪的崩溃,我自己也无法重现这一点,但是我从用户设备之一的Crashlytics报告了这一点。

Exception: EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000

Crashed: com.apple.NSURLConnectionLoader
0  libobjc.A.dylib                0x22613a76 objc_msgSend + 21
1  CoreFoundation                 0x22e97a58 __CFBasicHashDrain + 448
2  CoreFoundation                 0x22d77795 CFRelease + 424
3  CoreFoundation                 0x22e979e8 __CFBasicHashDrain + 336
4  CoreFoundation                 0x22d77795 CFRelease + 424
5  CoreFoundation                 0x22e26b8f -[CFPrefsSearchListSource alreadylocked_copyDictionary] + 906
6  CoreFoundation                 0x22e258ad -[CFPrefsSearchListSource alreadylocked_copyValueForKey:] + 52
7  CoreFoundation                 0x22e9f6bb -[CFPrefsSource copyValueForKey:] + 50
8  CoreFoundation                 0x22ea1e3d ___CFPreferencesCopyAppValueWithContainerAndConfiguration_block_invoke + 28
9  CoreFoundation                 0x22e23969 __95+[CFPrefsSearchListSource withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 400
10 CoreFoundation                 0x22e2377f normalizeQuintuplet + 354
11 CoreFoundation                 0x22e23617 +[CFPrefsSearchListSource withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 106
12 CoreFoundation                 0x22ea1dc9 _CFPreferencesCopyAppValueWithContainerAndConfiguration + 248
13 Foundation                     0x235c436f -[NSUserDefaults(NSUserDefaults) objectForKey:] + 46
14 MyApp                       0x12ddc49 -[MyStore getConfigValue:] (MyStore.m:43)

MyStore中的代码如下:

- (id) getConfigValue:(NSString *)key {
    if (key) {
        return [[NSUserDefaults standardUserDefaults] valueForKey:key];
    }
    return nil;
}

我将此方法称为

NSString *userId = [storeObj getConfigValue:@"UserID"];

现在,在某些情况下可能不会设置此值,但应该返回nil。我无法找到任何有效的原因导致崩溃。

感谢您的帮助。

0 个答案:

没有答案