私は個人と会社のNSManagedObjectsをサブクラス化しました。コアデータでは、これらを双方向の関係で設定しました(1つはpersonCompanyと呼ばれる個人から会社へ、もう1つはcompanyPersonの周り)。私のアプリは人と会社の両方を美しく保存します。それらのヘッダーファイルは次のようになります(デモ用に大幅に簡略化されています)。
#import <CoreData/CoreData.h>
@interface BBPerson : NSManagedObject
@property (nonatomic) NSString *firstName;
@property (nonatomic) NSString *lastName;
@end
----------------------
#import <CoreData/CoreData.h>
@interface BBCompanyName : NSManagedObject
@property (nonatomic) NSString *companyName;
@end
私の「AddPerson」ビューコントローラでは、saveメソッドの一部を以下に示します。
//If this is a new person, best add a person
if (!currentPerson) {
currentPerson = [NSEntityDescription insertNewObjectForEntityForName:@"Person"
inManagedObjectContext:managedObjectContext];
}
//Write the values back to the entity
currentPerson.firstName = txtFirstName.text;
currentPerson.lastName = txtLastName.text;
**//I WANT TO DO THE BELOW: but clearly can't**
//[currentPerson setCompany:selectedCompany];.
//Save back to core data
NSError *error;
if (![managedObjectContext save:&error]) {
NSLog(@"Failed to save - error: %@", [error localizedDescription]);
}
ここで参照されている別の会社(上記ではselectedCompanyとして表示)がある場合、サブクラス化されたNSManagedObjectを変更してこの関係を追加するにはどうすればよいですか?私はドキュメンテーションを見ました、そして、私はまだ少し漂流しています。
サブクラス化されたNSManagedObjectを使用して私が行おうとしているのは、永続化できる関係を作成することです。[currentPerson setCompany:selectedCompany]のようなもの; もちろん、これはcurrentPersonにメソッドを必要とします-このメソッドはどのように見えますか?
私がやりたいのは、アプリの後の段階で、すべての人を会社に呼び戻すことです。述語と外部キーと溝の関係を使用してこれを行うことを考えましたが、これはデータベースであり、そうではないという誤った考え方に陥っています。