2016-06-14 39 views
-3

コアデータにプライマリ/外部キーの関係を作成するにはどうすればよいですか?コアデータでリレーションシップはどのように機能しますか?

私は、ユーザーが登録してからログインするアプリを作っており、それはコアデータに保存されています。

新しいユーザー登録時にNSNumberをインクリメントして管理しています。

私は、ユーザーが画像をアップロードした場合、彼にのみ表示され、そのためには主キーの外部キーの概念を実装する必要があります。

コードを添付していますので、ご覧ください。次のように

NSEntityDescription *entity=[NSEntityDescription entityForName:@"Img_ent" inManagedObjectContext:obj]; 
    NSFetchRequest *req=[[NSFetchRequest alloc]init]; 
    [req setEntity:entity]; 
    [req setPredicate:[NSPredicate predicateWithFormat:@"uname=%@",str_unm]]; 
    NSError *error=nil; 
    NSArray *existingIDs = [obj executeFetchRequest:req error:&error]; 
    if (error != nil) 
    { 
     NSLog(@"Error: %@", [error localizedDescription]); 
    } 

    NSInteger newID = 0; 

    for (NSDictionary *dict in existingIDs) 
    { 
     NSInteger IDToCompare = [[dict valueForKey:@"img_id"] integerValue]; 

     if (IDToCompare >= newID) 
     { 
      newID = IDToCompare + 1; 
     } 
    } 

    if (newID==0) 
    { 
     newID=1; 
    } 
    img_entity.img_id=[NSNumber numberWithInteger:newID]; 
    img_entity.img_cd=[NSData dataWithData:data]; 
    [obj save:&error]; 
+0

投稿コードの例 –

+0

主キー - 外部キーは、CoreDataで行うべきことではありません。 – Fogmeister

答えて

0

保存/コアデータにUIImageオブジェクトを取得します。

保存するには:

NSData *imageData = UIImagePNGRepresentation(yourUIImage); 
[newManagedObject setValue:imageData forKey:@"image"]; 

と負荷への:

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

コアデータとのUITableViewを使用し、私のテーブルのデータベースから画像を引っ張ってください。ビュー: didSelectRowAtIndexPath:方法。

関連する問題