私は新しいレシピデータを作成するViewControllerを持っています。 新しいレシピを作成するには、タイトル、原料などを記入し、そのカテゴリを選択する必要があります。そのために、1対多の関係を持つカテゴリとレシピの実体を確立しました。Swift 2.1コアデータ - 1対多リレーションシップを持つデータを保存しますが、既存のデータを追加しない場合は
作成機能では、カテゴリエンティティに既にselectedCategoryの値があるかどうかを確認するために、次の検索が必要です。
selectedCategoryがカテゴリエンティティに既に存在する場合は、そのインデックスを見つけてそのカテゴリをRecipe Entityに割り当てる必要がありますが、ここで記述する必要があるコードはわかりません。
for category in categories {
if category == selectedCategory {
/* if selectedCategory already exists in Category entity,
find its index and assign that category to Recipe entity.*/
} else {
category.name = selectedCategory
recipe.category = category
}
}
context.insertObject(recipe)
do {
try context.save()
} catch {
print("Could not save recipe")
}
カテゴリをselectedCategoryと比較するにはどうすればよいですか?category.nameプロパティをselectedCategoryに設定するにはどうすればよいですか?どのような種類のオブジェクトがカテゴリですか? –
カテゴリーを選択するのにあなたは何を使用していますか? 'UIPickerView'です。 'UIPickerView'に5つの要素(カテゴリ)があり、ユーザがDessert == 2(デリゲートを使ってインデックスを取得)、' category.type = @ 2'を挿入して新しいレシピを挿入すると、 'recipe.name =" someName "'レシピをカテゴリ '[category addRecipe:recipe]'に追加した後、コンテキストを保存します。 – Khundragpan
私はカテゴリを選択するためにtableviewを使用しています。カテゴリオブジェクトにはname属性があり、デフォルトでMain、Side、Dessert、Drinkなどの値が保持されます。ユーザーはカスタムカテゴリ名を追加できますが、重複した名前の挿入を防止する必要があります。 –