0

2つのデータベースエンティティを持つコアデータセットアップがあります。名前のために、それらをプライマリおよびセカンダリと呼びます。セカンダリは1つのプライマリにのみ属します(関係は設定されています)。テーブル内のプライマリオブジェクトを一覧表示するメインビューで、それらを取得し、そのプロパティ(管理対象オブジェクトIDを含む)を格納するPriObjectクラスに配置しました。次に、PriObjectが可変配列(priArray)に追加され、テーブルにデータを入力するために使用されます。これまでのところ、すべて正常に動作しています。次に行をクリックすると、PriObject.moIDをログに記録できます。

データベースでそのオブジェクトを検索する方法がわからないため、セカンダリオブジェクトを追加できます。一部のプライマリが同じ名前を持っている可能性があるため、名前でそれを行うことはできません。

URIまたはIDのいずれかからオブジェクトを取り戻す方法を理解する必要があります。IDを持っているので、必要に応じてURIを生成できます。

頭がまったくわからず、探しているときに見つけた例では、必要なものがカバーされていません。どのようなオプションがありますか?

編集:私は現在、次のすべてのオブジェクトを取得しています。

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

NSManagedObjectContext *context = [appDelegate managedObjectContext];

NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Primary"
                                              inManagedObjectContext:context];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];

NSError *error;
NSArray *objects = [context executeFetchRequest:request
                                          error:&error];


if ([objects count] == 0) {
    NSLog(@"Nothing found");
} else {
    NSLog(@"Something found");
}

使用しているものだけにこれを変更するにはどうすればよいですか?

ObjectWithID:
4

1 に答える 1

2

objectWithID:インスタンスのメソッドを呼び出して、NSManagedObjectContextインスタンスを取得します。

余談ですが、このクラスを使用すると、自分自身で物事を難しくしているように見えます。インスタンスPriObjectのラッパーのようですよね?個人的には、サブクラスを直接NSManagedObject使用します。NSManagedObject

于 2012-11-21T09:48:24.100 に答える