コアデータ-1対多の関係で値を割り当てます

ニコラス・ピッコリ

コードを投稿して、必要なものを説明します。

2つのモデル:

import Foundation
import CoreData

class TrainingDay: NSManagedObject {

    @NSManaged var day: String
    @NSManaged var trainingDetails: NSSet

}

そして

import Foundation
import CoreData

class TrainingDetails: NSManagedObject {

    @NSManaged var exerciseName: String
    @NSManaged var repsNumber: String
    @NSManaged var setsNumber: String
    @NSManaged var trainingDay: TrainingDay

}

OK、今ここにこれらのメソッドがあります:

    func appendTrainingDay() {
        let dayLabel = dayName.text
        let dayEntity = NSEntityDescription.entityForName("TrainingDay", inManagedObjectContext: moc!)
        let newTrainingDay = TrainingDay(entity: dayEntity!, insertIntoManagedObjectContext: moc)
        newTrainingDay.day = dayName.text

        var error: NSError?
        moc?.save(&error)

        if let err = error {
            var status = err.localizedFailureReason
            println("\(status)")
        } else {
            println("Training day:\(dayName.text)")
    }
}

そして

   func appendTrainingDetailsToArray () {
        let nameLabel = exerciseName.text
        namesArray.append(nameLabel)
        let numberOfSets = setsNumber.text?.toInt()
        setsArray.append(numberOfSets!)
        let numberOfReps = repsNumber.text?.toInt()
        repsArray.append(numberOfReps!)


        let detailsEntity = NSEntityDescription.entityForName("TrainingDetails", inManagedObjectContext: moc!)
        let trainingdetails = TrainingDetails(entity: detailsEntity!, insertIntoManagedObjectContext: moc)
        trainingdetails.exerciseName = exerciseName.text
        trainingdetails.setsNumber = setsNumber.text!
        trainingdetails.repsNumber = repsNumber.text!

        var error: NSError?
        moc?.save(&error)

        if let err = error {
            var status = err.localizedFailureReason
            println("\(status)")
        } else {
            println("Training day:\(trainingdetails)")
            println("Exercise: #\(exerciseName.text) saved successfully!")
            println("Number of sets: #\(setsNumber.text) saved successfully!")
            println("Number of reps: #\(repsNumber.text) saved successfully!")
        }
    }

そして、それらはここでトリガーされます:

@IBAction func fixDayButton(sender: AnyObject) {
        appendTrainingDay()
    }


    @IBAction func doneButton(sender: AnyObject) {
        appendTrainingDetailsToArray()
        exerciseTableView.reloadData()
    }

これが完了すると、ユーザーは「月曜日」などの日を印刷してコアデータに保存し、その特定の日に、ユーザーは必要に応じて多くの詳細オブジェクトを追加して、データを入力します。 tableView。これらの各オブジェクトには、「exerciseName」、「repsNumber」、「setsNumber」の3つの属性が含まれています。たとえば、単一の「月曜日」オブジェクトを作成し、この既存のオブジェクトに多くの詳細オブジェクトを追加する代わりに、多くの「月曜日」を作成し、「月曜日」ごとに1つの詳細オブジェクトを作成します。

どうすればこれを修正できますか?コアデータに詳細を保存するメソッド内で、必要な特定の日のフェッチを作成し、必要な数のオブジェクトを入力するにはどうすればよいですか?

->私はすでに1対多の関係を設定し、それらの間で逆にしています。

->検索したいものに一致する述語を使用して適切なフェッチ要求を行う方法がわかりません。

->私はSwiftを初めて使用し、C ++の経験はほとんどありません。

誰かが例を挙げてこれを行う方法を私に説明できれば、私は非常に、非常に感謝するでしょう。

Duncan Groenewald

trainingdetails.trainingDay関係を設定します。私が何かを逃したのでない限り、あなたはこの関係をどこにも設定しませんでした。

編集:

このようなもの:

trainingdetails.trainingDay = selectedTrainingDay

アクセスするにtrainingdetailsは、Core Dataからその日を取得し、次のようにします。

foreach( TrainingDetails trainingDetails in selectedTrainingDay.trainingDetails) {
   // Do stuff with the trainingDetails

}

UIとワークフローをよく理解していないので、ここで推測しています。通常、この種のものには2つのUITableViewがあります。1つは日を一覧表示し、1つを選択すると、trainingDetailsの日を一覧表示する別のUITableViewに移動します。あなたの場合、あなたはカレンダービューを持っていると思います。カレンダービューから日を選択すると、選択した日のtrainingDetailsのリストが表示されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

属性の割り当て中に例外を処理し、1対多の関係にエラーを追加します

分類Dev

コアデータの1対多の関係、割り当て、フェッチ、NSSetの述語

分類Dev

コアデータ-1対多の関係を持つsectionNameKeyPath

分類Dev

.xcdatamodelのコアデータで多対多の関係を作成する方法

分類Dev

Django、両方のテーブルに事前定義された値を持つ2つのテーブル間に多対多の関係を割り当てます

分類Dev

多対多の関係を更新すると、すべてのレコードが同じ値になります

分類Dev

多対多の関係でより多くの行を持つSQLSelect値にアクセスします

分類Dev

Node.js-マングース-この場合、複数の多対1の関係をどのように割り当てる必要がありますか?

分類Dev

hsqlを使用してデータを取得します-多対1の関係

分類Dev

EntityFrameworkコードの最初の1対多の関係はWebAPIを使用してデータを返します

分類Dev

1対多の関係で垂直データセットを水平に変換する必要があります

分類Dev

多対多の関係でのコアデータ検索

分類Dev

迅速なコアデータは、1対多の関係からオブジェクトを取得します

分類Dev

1対多の関係でエントリを削除するSwiftコアデータ

分類Dev

1対1の関係でのレールの割り当て

分類Dev

1対多の関係で価値を得る(EFコア)

分類Dev

コアデータの1対多の関係

分類Dev

djangoコードを使用して1対多のフィールドに値を割り当てます

分類Dev

EFで1対1の関係で外部キーを割り当てることは可能ですか?

分類Dev

コアデータ:1対多の関係-詳細は保存されません

分類Dev

EFコードは最初に1対多の関係を作ります

分類Dev

1 対多の関係のコア データは、最後のオブジェクトのみを保存します。他が欠けている

分類Dev

EFコアで1対1の関係を追加するときにデータを移行しますか?

分類Dev

コアデータ:多対多の関係で関連オブジェクトをフェッチする

分類Dev

Doctrine querybuilderは、leftJoinとの1対多の関係ですべてのレコードを返すわけではありません

分類Dev

複数の1対多の関係から値を持つデータのリストを作成します

分類Dev

テーブルから値を取得できません。1対多の関係

分類Dev

Entity Framework Coreを使用して、多対多の関係でデータベースをシードします

分類Dev

追加データを使用してLaravelで多対多の関係を作成する

Related 関連記事

  1. 1

    属性の割り当て中に例外を処理し、1対多の関係にエラーを追加します

  2. 2

    コアデータの1対多の関係、割り当て、フェッチ、NSSetの述語

  3. 3

    コアデータ-1対多の関係を持つsectionNameKeyPath

  4. 4

    .xcdatamodelのコアデータで多対多の関係を作成する方法

  5. 5

    Django、両方のテーブルに事前定義された値を持つ2つのテーブル間に多対多の関係を割り当てます

  6. 6

    多対多の関係を更新すると、すべてのレコードが同じ値になります

  7. 7

    多対多の関係でより多くの行を持つSQLSelect値にアクセスします

  8. 8

    Node.js-マングース-この場合、複数の多対1の関係をどのように割り当てる必要がありますか?

  9. 9

    hsqlを使用してデータを取得します-多対1の関係

  10. 10

    EntityFrameworkコードの最初の1対多の関係はWebAPIを使用してデータを返します

  11. 11

    1対多の関係で垂直データセットを水平に変換する必要があります

  12. 12

    多対多の関係でのコアデータ検索

  13. 13

    迅速なコアデータは、1対多の関係からオブジェクトを取得します

  14. 14

    1対多の関係でエントリを削除するSwiftコアデータ

  15. 15

    1対1の関係でのレールの割り当て

  16. 16

    1対多の関係で価値を得る(EFコア)

  17. 17

    コアデータの1対多の関係

  18. 18

    djangoコードを使用して1対多のフィールドに値を割り当てます

  19. 19

    EFで1対1の関係で外部キーを割り当てることは可能ですか?

  20. 20

    コアデータ:1対多の関係-詳細は保存されません

  21. 21

    EFコードは最初に1対多の関係を作ります

  22. 22

    1 対多の関係のコア データは、最後のオブジェクトのみを保存します。他が欠けている

  23. 23

    EFコアで1対1の関係を追加するときにデータを移行しますか?

  24. 24

    コアデータ:多対多の関係で関連オブジェクトをフェッチする

  25. 25

    Doctrine querybuilderは、leftJoinとの1対多の関係ですべてのレコードを返すわけではありません

  26. 26

    複数の1対多の関係から値を持つデータのリストを作成します

  27. 27

    テーブルから値を取得できません。1対多の関係

  28. 28

    Entity Framework Coreを使用して、多対多の関係でデータベースをシードします

  29. 29

    追加データを使用してLaravelで多対多の関係を作成する

ホットタグ

アーカイブ