2017-07-11 71 views
0

在這裏,嘗試從我的兩個實體名稱中獲取記錄是:註冊&唯一。關係名稱是他們之間的羅山。 在m執行它顯示錯誤:「NSInvalidArgumentException」的,理由是:「一對多這裏不允許鑰匙」對多關鍵在這裏不允許

NSManagedObjectContext *context = [appDelegate manageObjectContext]; 
    NSError *error = nil; 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"roshan.number == %@", @"1"]; 
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Resgistration" inManagedObjectContext:context]; 

    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    [request setEntity:entityDescription]; 
    [request setPredicate:predicate]; 
    [request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"Unique",nil]]; 
    [request setIncludesSubentities:YES]; 

    NSArray* returnArray = [context executeFetchRequest:request error:&error]; 
    if([returnArray count] > 0) { 

     Resgistration* reg = [returnArray objectAtIndex:0]; 
     NSLog(@"%@ %@", reg.name, reg.number); 
    } 

回答

2

roshan是一對多的關係,聲明「roshan.number == 1」曖昧。

  • 你的意思是,它至少有一個羅山與多家等於1(「ANY roshan.number == 1」。
  • 你的意思是所有的roshans的等於一(「ALL羅山.nu​​mber == 1「)。
  • 你的意思是說只有一個羅山,它有一個號碼(」所有roshan.number == 1 AND roshan。@ count == 1「)。
+0

嘿,但不能顯示記錄,你能幫助我嗎? –

+0

如果你有NSLog工作,那麼取得成功如果你想另一個關於顯示數據的問題喲你應該提出一個新問題並分享你嘗試過的代碼。 –