最近做的项目中要存储一组图片数据,图片带有name,date等属性,处理办法是讲image图片直接存在沙盒documents文件中,再使用plist文件存储图片属性和image路径。
存入图片:
- (void)savePhotos:(NSArray *)photos { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *plistPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"photo_info.plist"]; NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image"]; NSLog(@"%@", filePath); NSFileManager* fileManager = [NSFileManager defaultManager]; if (![fileManager fileExistsAtPath:plistPath]) { [fileManager createFileAtPath:plistPath contents:nil attributes:nil]; } if (![fileManager fileExistsAtPath:filePath]) { [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:NO attributes:nil error:nil]; } NSMutableArray *savePhotos = [[NSMutableArray alloc] init]; for (Photo *photo in photos) { NSMutableDictionary *info = [[NSMutableDictionary alloc]init]; NSString *imagePath = [filePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg", photo.name]]; [UIImagePNGRepresentation(photo.image)writeToFile:imagePath atomically:YES]; [info setObject:imagePath forKey:@"ImagePath"]; [info setObject:photo.name forKey:@"Name"]; [info setObject:photo.tags forKey:@"Tags"]; [info setObject:photo.date forKey:@"Date"]; [savePhotos addObject:info]; } [savePhotos writeToFile:plistPath atomically:YES]; }
读取图片:
- (NSArray *)loadPhotosFromDisk { //从本地读取图片 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *plistPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"photo_info.plist"]; NSArray *photosArr = [NSArray arrayWithContentsOfFile:plistPath]; for (NSDictionary *dic in photosArr) { Photo *photo = [[Photo alloc] init]; photo.image = [UIImage imageWithContentsOfFile:[dic valueForKey:@"ImagePath"]]; photo.name = [dic valueForKey:@"Name"]; photo.tags = [dic valueForKey:@"Tags"]; photo.date = [dic valueForKey:@"Date"]; [self.photos addObject:photo]; } return self.photos; }
时间: 2024-11-23 21:42:31