NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenc
在iOS5.1以后的版本中,清除所有的NSUserDefaults Data的时候会报错,直接crash
在清除的时候用一下代码,问题解决。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSDictionary *userDefaultsDictionary = [userDefaults dictionaryRepresentation]; NSString *strWebDatabaseDirectory = [userDefaultsDictionary objectForKey:@"WebDatabaseDirectory"]; NSString *strWebKitLocalStorageDatabasePathPreferenceKey = [userDefaultsDictionary objectForKey:@"WebKitLocalStorageDatabasePathPreferenceKey"]; [userDefaults removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]]; if (strWebDatabaseDirectory) { [userDefaults setObject:strWebDatabaseDirectory forKey:@"WebDatabaseDirectory"];} if (strWebKitLocalStorageDatabasePathPreferenceKey) { [userDefaults setObject:strWebKitLocalStorageDatabasePathPreferenceKey forKey:@"WebKitLocalStorageDatabasePathPreferenceKey"];} [userDefaults synchronize];