概要:
コアデータを使用しているiOSプロジェクトがあります
- 私には
Employees
実体と実体がありDepartment
ます。 - 1つの部門に多くの従業員を含めることができます
- したがって、エンティティ
Department
はエンティティと「多すぎる」関係を持ちEmployees
、その関係は呼び出されemployees
、逆の関係は呼び出されますwhichDepartment
目的-1:
特定の部署の全社員を削除したい
質問:
a)次は正しいですか、それとも突然変異やいくつかの問題を引き起こしますか?
b)これは正しい方法ですか?
Pls注-removeEmployees
エンティティのサブクラスの作成中に自動生成されたメソッドです
- (void) deleteAllEmployeesForDepartment: (Department*) requestedDepartment
{
[requestedDepartment removeEmployees:requestedDepartment.employees];
}
目的-2:
- 何らかの条件で従業員を削除したい
- フェッチされたレコードの高速列挙ループ内のオブジェクトを削除しています
質問:
c)次は正しいですか、それとも何らかの突然変異を引き起こしますか?
d)高速列挙でオブジェクトを変更するようなものですか?
e)それを行うためのより良い方法はありますか?
Pls注-removeEmployees
エンティティのサブクラスの作成中に自動生成されたメソッドです
- (void) deleteAllType1EmployeesWithDepartment: (Department*) requestedDepartment
{
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"type == %i AND whichDepartment ==%i", 1, requestedDepartment.departmentID];
NSError *error;
NSArray *listOfEmployeesToBeDeleted = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for(Employees *currentEmployee in listOfEmployeesToBeDeleted)
{
[self.managedObjectContext deleteObject:currentEmployee];
}
}