2013-01-09 76 views
0

我有一個NSManagedObject子類,並希望獲取其子對象中的某個子對象,並給定某個值,該子對象是子「position」的屬性。NSManagedObject上的NSManagedObjectContext屬性

我寫了一個函數- (ChildObject*)childWithPosition:(int)position

在這裏我檢查是否存在這個孩子,如果有,就返回它。

如果它不存在,那麼我想創建它。

所以......

我能做到這一點的ParentObject內...

- (ChildObject*)childWithPosition:(int)position 
{ 
    //check if child exists and return it if it does. 
    // if it does not exist then... 

    ChildObject *child = [[ChildObject alloc] initWithEntity:[NSEntityDescription entityForName:@"ChildObject" inManagedObjectContext:self.managedObjectContext] insertIntoManagedObjectContext:self.managedObjectContext]; 

    child.position = position; 

    return child; 
} 

我的問題是,是不是OK和安全的使用屬性self.manageObjectContext父和使用這個上下文插入一個新的子對象?

回答

1

是一個關係。但爲什麼不使用NSManagedObjectmanagedObjectContext屬性?

從蘋果文檔:

managedObjectContext返回與該 接收器註冊的管理對象範圍內。

因此,舉例來說:

NSManagedObjectContext* currentContext = parent.managedObjectContext; 
+0

在這種情況下,家長和孩子將共享相同的上下文。父母之一。 –

+0

謝謝。我不知道爲什麼,但我更喜歡initWithEntity:insertIntoManagedObjectContext方法來啓動ManagedObjects。 – Fogmeister

+0

@Fogmeister對不起。這是代碼中的一個錯字。我修好了它。插入方法是我通常創建的用於在上下文中插入對象的實用方法。 –

0

是的。它甚至必須是父母有與其子:)

===在同一個MOC 對象只可與IIRC

相關問題