作者uranusjr (←这人是超级笨蛋)
看板MacDev
标题Re: [问题] 用NSUserDefaults 储存 阵列图片
时间Sun Nov 4 21:50:56 2012
※ 引述《j5307 (JJ)》之铭言:
: //有问题的地方
: [Marray addObject: thumbnailImg];
: [SaveDefaults setObject:array forKey:@"Key"];
: for (int i=0; i<Marray.count; i++) {
: NSLog(@"test:%@",[Marray objectAtIndex:i]);
: }
: 测试结果
: test:<UIImage: 0x22575960>
: 但在做第二次动作时 会把第一次盖掉
: test:<UIImage: 0x2257a2c0>
: 更改问题的地方成 字串储存
: [Marray addObject: @"try"];
: 测试结果
: test:try
: 第二次测试时 就会显示两次
: test:try
: test:try
不是第二次会把第一次盖掉
而是因为 NSUserDefaults 根本没把图片存进去, 所以你第二次不会显示第一次的值
http://goo.gl/9fkL4 [developer.apple.com]
A default object must be a property list, that is, an instance of (or for
collections a combination of instances of): NSData, NSString, NSNumber,
NSDate, NSArray, or NSDictionary.
UIImage 根本就不能存
如果你想用 NSUserDefaults 存图片
正确的方法是使用 NSData
UIImage *image = ...; // Some image
NSData *imageData = UIImagePNGRepresentation(image); // 也有 JPEG 版
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:imageData forKey:@"image"];
[defaults synchronize];
不过要注意 NSNserDefaults 是设计给轻量资料使用的机制
存太大的东西会严重影响效能, 请小心使用
--
╱ ̄ ̄ ̄╲
▏
◢█◣ ▏
︻█︻█ ▏
成龙表示: 是喔...
′/ ‵ ▏
╰╯ █╱
ψQSWEET ◥︶█◤
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146
1F:推 j5307:谢谢分享 11/05 14:34