0

我将 UIImage 存储在 NSMutableArray 中,然后将 NSMutableArray 存储到 NSDictionary 中。NSDictionary 的键是文件夹名称,NSDictionary 的值是 NSMutableArray。现在我如何在 NSUserDefaults 中存储和检索 NSDictionary。

我做了如下:

NSMutableArray *imageArray=[[NSMutableArray alloc] init];
[imageArray addObject:selectedImage];


[allFolderWithImageDict setValue:imageArray forKey:@"UniqueFolderName"];

NSUserDefaults *defauktCenter = [NSUserDefaults standardUserDefaults];
[defauktCenter setValue:allFolderWithImageDict forKey:@"FolderImageDict"];
[defauktCenter synchronize];

但是 NSDictionary 没有保存在 NSUserDefaults 中。

请举一些例子

谢谢

4

3 回答 3

2

要存储和检索自定义对象的值,您可以使用NSKeyedArchiverNSKeyedUnarchiver类:

// To Save. . .
NSData *resData = [NSKeyedArchiver archivedDataWithRootObject:allFolderWithImageDict];
[[NSUserDefaults standardUserDefaults] setObject:resData forKey:@"FolderImageDict"];

// To Load. . .
NSData *respData = [[NSUserDefaults standardUserDefaults] objectForKey:@"FolderImageDict"];
resultDictionary = [NSKeyedUnarchiver unarchiveObjectWithData:respData];
NSLog(@"dict :: %@",resultDictionary);

祝你好运 !!!

于 2013-04-11T14:00:17.720 回答
0

而不是使用 NSDictionary,使用 NSMutableDictionary.... :)

并检索存储在字典中的数据......

  NSUserDefaults *d = [NSUserDefaults standardUserDefaults];

  NSString *loadname1 = [d objectForKey:@"FolderImageDict"];

  NSLog(@"%@", loadname1);
于 2013-04-12T09:45:12.580 回答
0

要在其中存储UIImage对象,NSUserDefaults您需要一个UIImage实现NSCoding协议的类别实现

这是一个: https ://code.google.com/p/iphonebits/source/browse/trunk/src/Categories/UIImage-NSCoding.h https://code.google.com/p/iphonebits/source/browse /trunk/src/Categories/UIImage-NSCoding.m

来自 http://iphonedevelopment.blogspot.it/2009/03/uiimage-and-nscoding.html

于 2013-04-11T16:06:40.420 回答