[英]NSUserdefaults multiple data types for one key
從各種答案中讀取后,我知道NSUserDefaults
可以為一個鍵保存多種數據類型。 但是我找不到的是
[NSUserDefaults standardUserDefaults] removeObjectForKey:"someKey"];
刪除與該鍵關聯的所有數據類型的所有對象?
您不能為一個鍵存儲不同類型的對象。
如果您為一個鑰匙設置一個對象,它將刪除舊的鑰匙。
但是,如果您正在尋找一種方法來存儲一個鍵的多個數據,則可以存儲NSDictionary。
例如:
MyObject *obj = [[MyObject alloc] init];
NSString *otherType = @"mystring";
NSDictionary *multipleData = @{ @"key1" : obj , @"key2" : otherType}
[[NSUserDefaults standardUserDefaults] setObject: multipleData forKey:@"multipleData"];
[[NSUserDefaults standardUserDefaults] synchronize];
如果要刪除它:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"multipleData"];
[[NSUserDefaults standardUserDefaults] synchronize];
是的,它確實。
您的數據可以是數組,字典或簡單int的任何數據。 此命令將刪除該數據。
正如iPatel所建議的。 您需要致電:
[[NSUserDefaults standardUserDefaults] synchronize];
添加或刪除任何數據之后。 希望這可以幫助.. :)
您不能在一個鍵下存儲多個對象。 NSUserDefaults
行為就像NSDictionary
。 當您為特定鍵設置對象時,您將覆蓋舊對象。 所以removeObjectForKey:
只刪除一個對象/值; 您在該密鑰下存儲的那個。
你打電話嗎
[[NSUserDefaults standardUserDefaults] synchronize];
刪除密鑰的所有數據后,也可能是您無法在單個密鑰上存儲多個數據,它會返回插入到最后的新數據。 ?
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *yourDomain = [[NSBundle mainBundle] bundleIdentifier];
[userDefault removePersistentDomainForName:yourDomain];
這里。 如果你想重置。
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.