0

我有一个具有 20 个属性的实体(称为会议)。在情节提要中,我有 4 个场景。显然每个场景都有自己的控制器文件。每个场景提供 5 个 UITextField 供用户输入。当用户在每个场景上点击 Next 时,我想保存。将保存到在 Scene1 中创建的同一实体对象。我可以很好地保存在场景 1 中。但是当我到达场景 2 时,如何访问我在场景 1 中保存的同一个对象?

下面是场景 1 创建对象的代码:

Meetings *meetings = (Meetings *) [NSEntityDescription insertNewObjectForEntityForName:@"Meetings" inManagedObjectContext:self.managedObjectContext];

问题:如何从场景 2、3 和 4 访问在场景 1 中创建的相同指针 *meetings?当我在场景 2、3 和 4 中键入上面相同的代码时,它给了我一个新对象。我不想在 Scene1 之后创建一个新对象。我想从 Scene1 访问同一个对象,这样我就可以继续保存剩余的属性。

或者有更好的方法吗?

谢谢。

4

1 回答 1

0

您不需要在每个场景中都插入新的会议对象。

  1. 只需将会议参考从一个场景传递到第二个场景等等。
  2. 或传递会议 objectID

    @implementation FirstScene
    ...
    
    - (void)nextScene {
        Meetings *meetings = (Meetings *) [NSEntityDescription insertNewObjectForEntityForName:@"Meetings" inManagedObjectContext:self.managedObjectContext];
        NSManagedObjectID* objectID = [meetings objectID];
        [secondScene setObjectID:objectID];
    }
    ...
    @end
    
    @implementation SecondScene
    ...
    - (void)setObjectID:(NSManagedObjectID*)objectId {
        NSManagedObjectContext* context = [self context];
        Meetings *theSameMeetings = (Meetings *)[context objectWithID:objectID];
    }
    
    ...
    @end
    
于 2013-02-12T19:33:37.010 回答