私は私がこつを持っていると思った何かでボートを逃していて、ここの誰かが助けてくれることを望んでいました。
Xcodeバージョン4.4を使用しており、プロジェクトではCore Data、Storyboards、およびARCを使用しています。
私のプロジェクトには次の3つのエンティティがあります。
すべてがLivestockおよびNotesエンティティでうまく機能します。しかし、データをタクソノミーエンティティに保存しようとしても、何も起こりません。エラーは発生しませんが、データは保存されません。
フェッチされた結果に配列を使用しなくても大丈夫ですか?私の述語に基づいて、返されるオブジェクトは1つだけであると予想しているので、配列は必要ないと思いました。以下は、保存を行う私のコードです。ビューのテキスト変数からデータが渡されていることを確認しました。
AppDelegate *appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = [appDelegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.entity = [NSEntityDescription entityForName:@"Livestock" inManagedObjectContext:managedObjectContext];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"tank == %@ AND type == %@ AND name == %@", self.detailTank, self.detailType, self.detailName];
NSError *error = nil;
Livestock *livestock = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] lastObject];
if (error) {
NSLog(@"TaxonViewController: saveTaxonomy: Retrieving Livestock Record for saving: error = %@", error);
}
Taxonomy *taxonomy = livestock.taxonChildren;
taxonomy.kingdom = self.kingdom.text;
taxonomy.phylum = self.phylum.text;
taxonomy.classs = self.classs.text;
taxonomy.order = self.order.text;
taxonomy.family = self.family.text;
taxonomy.genus = self.genus.text;
taxonomy.species = self.species.text;
taxonomy.common = self.common.text;
taxonomy.livestockParent = livestock;
error = nil;
if (![managedObjectContext save:&error]) {
NSLog(@"Taxonomy save error. error = %@, userInfo = %@", error, [error userInfo]);
}
どんな洞察も大歓迎です!ありがとう!
更新1:
NULLtaxonChildren値をテストするようにコードを変更しました。これは私のためにそれを解決しました。ありがとうジェシー!
if (livestock.taxonChildren == NULL) {
Taxonomy *taxonomy = [NSEntityDescription insertNewObjectForEntityForName:@"Taxonomy" inManagedObjectContext:managedObjectContext];
taxonomy.kingdom = self.kingdom.text;
taxonomy.phylum = self.phylum.text;
taxonomy.classs = self.classs.text;
taxonomy.order = self.order.text;
taxonomy.family = self.family.text;
taxonomy.genus = self.genus.text;
taxonomy.species = self.species.text;
taxonomy.common = self.common.text;
taxonomy.livestockParent = livestock;
}
else {
Taxonomy *taxonomy = livestock.taxonChildren;
taxonomy.kingdom = self.kingdom.text;
taxonomy.phylum = self.phylum.text;
taxonomy.classs = self.classs.text;
taxonomy.order = self.order.text;
taxonomy.family = self.family.text;
taxonomy.genus = self.genus.text;
taxonomy.species = self.species.text;
taxonomy.common = self.common.text;
taxonomy.livestockParent = livestock;
}