2013-10-11 53 views
0

我有一個iOS應用程序,我正在使用Core Data進行存儲。我有兩個實體(「MyEntity」和「OtherEntity」),它們是一對一的關係。兩個實體彼此相關(即每個實體與另一個實體具有反向關係)。除了彼此之間有關係以外,每個實體的其中一個屬性也是另一個實體的主鍵。我遇到的問題是,我意識到我不應該有一個屬性是另一個實體的外鍵,當這些實體彼此有關係時,但是我無法通過引用關係來間接檢索主鍵屬性,但我可以通過參考,我明確設置爲其他實體的主鍵的屬性檢索它:Core Data中的關係屬性在iOS中被調用時返回nil

//NSInteger userId = [testUser.otherEntity.userId integerValue]; --> returns nil 
    NSInteger userId = [testUser.userId integerValue]; --> works fine 

其中「爲testUser」的類型是「myEntity所」的一個實例,它是一個子類NSManagedObject和「otherEntity」是實體的一個實例,「OtherEntity」與「MyEntity」具有反向關係。

這裏是每一個實體的屬性:

#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 

@class OtherEntity; 

@interface MyEntity : NSManagedObject 

@property (nonatomic, strong) NSString * email; 
@property (nonatomic, strong) NSNumber * primaryId; //primary key for MyEntity 
@property (nonatomic, strong) NSString * metaData; 
@property (nonatomic, strong) NSDate * birthDate; 
@property (nonatomic, strong) NSString * name; 
@property (nonatomic, strong) NSNumber * userId; //this is the primary key for OtherEntity 
@property (nonatomic, strong) OtherEntity *otherEntity; 

@end 

和這裏的屬性爲OtherEntity:

#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 

@class MyEntity; 

@interface OtherEntity : NSManagedObject 

@property (nonatomic, strong) NSString * address; 
@property (nonatomic, strong) NSString * city; 
@property (nonatomic, strong) NSString * country; 
@property (nonatomic, strong) NSString * fax; 
@property (nonatomic, strong) NSString * phone; 
@property (nonatomic, strong) NSString * postalCode; 
@property (nonatomic, strong) NSString * province; 
@property (nonatomic, strong) NSNumber * myUserId//primary key of MyEntity 
@property (nonatomic, strong) NSNumber * userId;//primary key of Other Entity 
@property (nonatomic, strong) MyEntity *myEntity; 

@end 

任何人都可以向我解釋的問題是什麼,或者它是什麼,我做錯了嗎?

在此先感謝所有回覆的人。

+0

ca顯示mi每個實體的屬性? –

+2

您是否檢查'testUser.otherEntity'是否爲零?如果不是:'testUser.otherEntity.userId'的值是什麼? –

+0

我提供了顯示每個實體屬性的代碼。我的應用程序存儲器中的每個實體都有數據,因此我沒有測試過testUser.otherEntity是否爲零。我想我會試試看看會發生什麼。 – syedfa

回答

0

(從評論:)您沒有設置testUser的關係, 因此testUser.otherEntitynil

然後testUser.otherEntity.userId也是nil[testUser.otherEntity.userId integerValue]返回零。

相關問題