6

私はコアデータに関連する初心者です。画像をコアデータに保存する方法とその取得方法を示す適切な手順/チュートリアルを提供するのに役立つ人はいますか.文字列データを既に保存できますが、画像を保存しようとするとアプリがクラッシュします. 保存する場合:

DataEvent *event = (DataEvent *)[NSEntityDescription insertNewObjectForEntityForName:@"DataEvent"
                                                          inManagedObjectContext:managedObjectContext];
NSURL *url2 = [NSURL URLWithString:@"xxxxxxxxxxxxxxx SOME URL xxxxxxxxxxxx"];

NSData *data = [[NSData alloc] initWithContentsOfURL:url2];
imageSave=[[UIImage alloc]initWithData:data];
NSData * imageData = UIImageJPEGRepresentation(imageSave, 100.0);    
[event setValue:self.imageSave forKey:@"pictureData"];

取得の場合:

 DataEvent *event = (DataEvent *)[eventsArray objectAtIndex:indexPath.row];
 UIImage *image = [UIImage imageWithData:[event valueForKey:@"pictureData"]];
 UIImageView *imageViewMainBackGround = [[UIImageView alloc] 
 CGRect rect3=CGRectMake(0,2,100.0,100.0); 
 imageViewMainBackGround.frame = rect3;
 [cell.contentView addSubview:imageViewMainBackGround];
 [imageViewMainBackGround release];
4

5 に答える 5

9

保存する:

NSData *imageData = UIImagePNGRepresentation(myUIImage);

[newManagedObject setValue:imageData forKey:@"imageKey"];

そして画像を取得するには:

NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
UIImage *image = [UIImage imageWithData:[selectedObject valueForKey:@"imageKey"]];
[[newCustomer yourImageView] setImage:image];

変更されたフォーマット

于 2013-02-25T16:31:18.030 に答える
2

エラー: 理由 = 「ストアを開くために使用されたモデルは、ストアを作成するために使用されたモデルと互換性がありません」

解決:

シミュレーターからビルド プロジェクトを削除し、[製品] タブからクリーンアップして、プロジェクトを実行します。

于 2012-08-09T08:16:00.447 に答える
1

必要がない場合は、解像度を変更しないでください。

NSData * imageData = UIImageJPEGRepresentation(imageSave, 0.0);

// そして、次の行を変更します

[event setValue:imageData forKey:@"pictureData"];

サンプル コードを含むコア データからの画像の保存と取得のチュートリアルを参照してください。

うまくいけば、これはあなたを助けるでしょう..

于 2012-04-25T07:46:45.640 に答える
0

UIImage であるimageSaveオブジェクトではなく、マネージド オブジェクトのpictureData値を NSData オブジェクト (この場合はimageData ) に設定する必要があります

于 2012-04-25T07:44:30.140 に答える