2012-04-07 130 views
1

在我的應用程序中,使用CoreData的Im和我有兩個實體。 VenueInfo和ContactInfo。CoreData一對一關係

在應用程序中,您可以添加場地,並且每個場地都有ContactInfo。所以我在我的模型中建立了一對一的關係。

所以我會想象,我可以簡單地做到以下幾點:

[venue.contact setValue:textField.text forKey:email];

所以像這樣你設置屬於會場的接觸對象的電子郵件屬性。但是這不起作用,有什麼想法?

是否有可能因爲聯繫人對象不存在?希望你能幫忙,謝謝。

+0

請張貼您的.xcodeModel的屏幕截圖... – 2012-04-07 12:30:35

+0

我更新了我的答案。請看看.. – 2012-04-07 12:55:19

回答

4

你寫的這行不會這樣。我假設聯繫人是您在xCodeModel中Venue實體中的關係名稱。

[venue.contact setValue:textField.text forKey:email]; // can't write this way.. 

假設你ContactInfo實體有兩個字段:phoneemail所以這樣你可以走了。 和VenueInfo實體有兩個字段:name

VenueInfo *venueInfo=[NSEntityDescription insertNewObjectForEntityForName:@"VenueInfo" inManagedObjectContext:self.managedObjectContext]; 
    vanueInfo.name=txtVenueName.text;   // venue name entry 


    ContactInfo *contactInfo=[NSEntityDescription insertNewObjectForEntityForName:@"ContactInfo" inManagedObjectContext:self.managedObjectContext]; 

    contactInfo.phone=txtPhone.text; 
    contactInfo.email=txtEmail.text; 
    contactInfo.venue=venueInfo; // I assume venue is the relationship name you give in ContactInfo entity towards Venue entity. 

我們做了什麼。這是我們保存的電話和電子郵件詳情,只ContactInfo實體與當前選定VenueInfo訪問我們ContactInfo實體申報VenueInfo的關係,那麼我們只與它。

這可能會讓人困惑,所以我建議您遵循一些教程,這些教程將爲您提供一些想法來掌握關於核心數據關係的一些基礎知識。 core data relationships tutorials

+0

已更改contactInfo.venue = selectedVenue; contactInfo.venue = venueInfo; – 2012-04-07 13:00:22

+0

好的,謝謝,這是有道理的,但無疑這隻有在您第一次提供場地聯繫信息時纔有效?因爲下次您再次編輯這個內容時,您再次創建一個新的聯繫人對象,當然您需要使用諸如venue.contact之類的東西訪問它的現有信息。 – 2012-04-07 13:07:35

+0

對不起,但沒有得到你?你是否參考了核心數據的任何參考或樣本代碼? – 2012-04-07 13:14:25