0

20 の属性を持つ 1 つのエンティティ (会議と呼ばれる) があります。ストーリーボードには 4 つのシーンがあります。明らかに、各シーンには独自のコントローラー ファイルがあります。各シーンは、ユーザー入力用に 5 つの UITextField を提供します。ユーザーが各シーンで次へを押したときに保存したいと思います。保存は、Scene1 で作成された同じエンティティ オブジェクトに行われます。シーン 1 で問題なく保存できます。しかし、シーン 2 に到達したとき、シーン 1 で保存したのと同じオブジェクトにアクセスするにはどうすればよいでしょうか?

以下は、シーン 1 がオブジェクトを作成するためのコードです。

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

問題: シーン 1 で作成された同じポインター *ミーティングに、シーン 2、3、および 4 からアクセスするにはどうすればよいですか? シーン 2、3、4 で上記と同じコードを入力すると、新しいオブジェクトが表示されます。Scene1 の後に新しいオブジェクトを作成したくありません。Scene1 から同じオブジェクトにアクセスして、残りの属性を引き続き保存できるようにします。

または、これに対するより良いアプローチはありますか?

ありがとう。

4

1 に答える 1

0

すべてのシーンで新しい会議オブジェクトを挿入する必要はありません。

  1. 会議の参照を 1 つのシーンから 2 番目などに渡すだけです。
  2. または会議オブジェクト ID を渡します

    @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 に答える