簡體   English   中英

在核心數據中添加對象

[英]Adding objects in Core Data

我試圖熟悉Core Data,並讓Xcode為我創建NSManagedObject的子類。 一個是AddressAnnotation,它僅包含有關位置的一些信息,例如街道,郵政編碼,地址等。另一個是:

Map : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *locations;
- (void)addLocationsObject:(AddressAnnotation *)value;
- (void)removeLocationsObject:(AddressAnnotation *)value;
- (void)addLocations:(NSSet *)values;
- (void)removeLocations:(NSSet *)values;

當我想在地圖上添加位置時,請執行以下操作:

- (void)insertLocationIntoMap:(Map *)map {  
    [map addLocationsObject:self.address];

我NSLogged的Map對象和地址對象,都具有值。 當我嘗試將對象添加到現有Map對象時,似乎沒有被添加。 記錄該映射的輸出為:

<Map: 0x7087480> (entity: Map; id: 0x7084ff0 <x-coredata://8D6D7849-E7EC-48A3-BA95-C082D09E5D6D/Map/p1> ; data: {
    locations = "<relationship fault: 0x768e4e0 'locations'>";
    name = asdf;
})

如果我創建一個新地圖,然后調用insertLocationIntoMap:,則不會添加AddressAnnotation對象。 記錄的地圖是:

<Map: 0x767dee0> (entity: Map; id: 0x767d2d0 <x-coredata://8D6D7849-E7EC-48A3-BA95-C082D09E5D6D/Map/p5> ; data: {
    locations =     (
    );
    name = asdfasdf;
})

在將AddressAnnotation添加到Maps對象時,我做錯什么了嗎? 當我不使用NSManagedObject的子類並且僅在任何地方都使用setValue:forKey:時,這是可行的,但是我認為在我習慣之后,這將更加直觀。 謝謝!

第一個日志顯示該關系的故障。 這並不能說明該關系中存在哪些對象。 您還應該記錄您的AddressAnnotation.map關系。 是一對多還是多對多關系?

最后,如果要打印出哪些對象相關,則應使用獲取請求以位置關系獲取對象( @"self.map == %@"AddressAnnotation實體,其中%@替換為Map實例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM