Spe*_*efy 2 objective-c nsdictionary uiimage nsarray ios
我存储UIImage在一个NSDictionary,然后使NSDictionary在应用中的另一个地方.gridImages是一个NSMutableArray
NSDictionary *pageDict = [pageArray objectAtIndex:0];
UIImage *pageImage = [pageDict objectForKey:@"image"];
[gridImages addObject:pageImage];
Run Code Online (Sandbox Code Playgroud)
pagedict返回
{
class = is;
image = "<UIImage: 0x14e20e10>";
name = kaka;
page = 64;
}
Run Code Online (Sandbox Code Playgroud)
这大概是我做的
UIImage *pageImage = [pageDict objectForKey:@"image"];
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将UIImage添加到数组时,我收到此错误:
-[UIImage stringByDeletingPathExtension]: unrecognized selector sent to instance 0x14e20e10
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:
对于NSDictionary,我尝试存储UIImageas NSData:
NSData *imageData = UIImagePNGRepresentation(textbookImage);
[pageDict setObject:imageData forKey:@"image"];
[pageDict setObject:textbookName forKey:@"name"];
[pageDict setObject:page forKey:@"page"];
[pageDict setObject:nameOfClass forKey:@"class"];
Run Code Online (Sandbox Code Playgroud)
并解析它像这样:
NSData *imageData = [pageDict objectForKey:@"image"];
UIImage *pageImage = [UIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)
但它仍然返回相同的错误
你不能设置UIImage成NSUserDefaults作为UIImage是无属性列表对象.
您最好存储文档目录中的图像路径.
这段代码会有所帮助.
// SET Image
NSString *strImagePath = //path of image from documents directory
NSMutableDictionary *dictOne = [NSMutableDictionary dictionaryWithCapacity:0];
[dictOne setObject:strImagePath forKey:@"image"];
[[NSUserDefaults standardUserDefaults] setObject:dictOne forKey:@"dict"];
Run Code Online (Sandbox Code Playgroud)
// GET图片
NSMutableDictionary *dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"dict"];
UIImage *image = [UIImage imageWithContentsOfFile:[dict objectForKey@"image"]];
Run Code Online (Sandbox Code Playgroud)
编辑:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *strImageFileName = [documentsDirectory stringByAppendingPathComponent:@"yourImageFileName"];
UIImage *image = // Your image;
NSData *dataImage = UIImageJPEGRepresentation(image, 0.5f);
/* Good image quality
NSData *dataImage = UIImagePNGRepresentation(image);
*/
[dataImage writeToFile:strImageFileName atomically:YES];
Run Code Online (Sandbox Code Playgroud)
快乐的编码.
| 归档时间: |
|
| 查看次数: |
2516 次 |
| 最近记录: |