質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

704閲覧

CoreDataによる複数のデータの保存、追加

tanaki

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/01/16 23:26

編集2021/01/18 14:30

前提・実現したいこと

バレーボールの試合において、どの場所に玉が落下したかを記録するアプリを作成したいと考えています。
前画面にて(allx→記録したX座標 ally→記録したY座標)タップした画面の座標を取得し、それを条件分岐にて左上、右上、左下、右下、どのエリアに落下したかを記録したいと考えています。
この取得したデータをCoreDataを使用して保存、追加したいと考えているのですが、複数のデータの保存、追加方法がわからない状態です。
各セットごとに記録したいので、
1セット目
左上:4
右上:2
左下:1
右下:3
2セット目
左上:4
右上:2
左下:1
右下:3
のような形です。
もしよろしければご教授下さい。

#追記
保存したい情報のデータ構造
var countmigiue = 0
var counthidariue = 0
var countmigisita = 0
var counthidarisita = 0
上から、画面の右上、左上、左下、右下、タップした回数になります。
以上を
var countMU:[Cdata] = [] //Nセット目の右上に落下した回数
var countHU:[Cdata] = [] //Nセット目の左上に落下した回数
var countMS:[Cdata] = [] //Nセット目の右下に落下した回数
var countHS:[Cdata] = [] //Nセット目の左下に落下した回数
のような形で配列として保存したいと考えています。

また、新しくでた値を、上記に追加できるような形をとりたいのです。
その際、以前記録したデータを読み込まないといけないと思うのですが、
NSFetchRequest の使用方法をイマイチ理解できておらず、
特定のAttributesのみを取得できたら実現できると考えています。

エラーメッセージ

### 該当のソースコード import UIKit import CoreData class fourthViewController: UIViewController { //ViewControllerから受け取るための変数 var allX :[Int] = [] var allY :[Int] = [] var countXY = 1 var countmigiue = 0 var counthidariue = 0 var countmigisita = 0 var counthidarisita = 0 var managier = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext @IBOutlet weak var hidariue: UILabel! @IBOutlet weak var migiue: UILabel! @IBOutlet weak var hidarisita: UILabel! @IBOutlet weak var migisita: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. print(allX ,allY) for countX in 0..<countXY{ if(allX[countX] > 132 && allX[countX] < 278 && allY[countX] > 36 && allY[countX] < 426){ counthidariue = counthidariue + 1 }else if(allX[countX] > 278 && allX[countX] < 688 && allY[countX] > 36 && allY[countX] < 426){ countmigiue = countmigiue + 1 }else if(allX[countX] > 132 && allX[countX] < 278 && allY[countX] > 426 && allY[countX] < 889){ counthidarisita = counthidarisita + 1 }else if(allX[countX] > 278 && allX[countX] < 688 && allY[countX] > 426 && allY[countX] < 889){ countmigisita = countmigisita + 1 } } ### 試したこと 試しに情報がひとつの場合は、追加、保存できたのですが、 複数になるとできない状態です。 ### 補足情報(FW/ツールのバージョンなど) Swift5 12.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/01/17 17:57

保存したい情報のデータ構造がいまいち見えません…。
tanaki

2021/01/18 13:52

返信遅れてしまい申し訳ありません。 情報の追記・修正致しました。
hoshi-takanori

2021/01/18 14:06

追記していただいた内容ですが、やっぱり分かりません。タップした回数をただ記録したいだけなら Core Data を使う必要は感じないし…。 具体的に、例えば右上を 1 回、左上を 2 回、右上を 1 回、右下を 3 回、左下を 1 回、左上を 3 回…という順番でタップしたら、何をどう記録したいのでしょうか? というか、そもそも画面のタップを記録して何がしたいのでしょうか?
tanaki

2021/01/18 14:31

何度もお手数をおかけしてしまい申し訳ありません。 更に修正、追記いたしました。
hoshi-takanori

2021/01/18 14:48

なるほど、そういうことですか。それなら、試合の場所や日時を表すオブジェクトと、各セットの記録を表すオブジェクトがあればいいと思います。 が、せっかく記録を取るなら、タップした場所と時刻をすべて記録しておいて、データを csv などで出力できた方が、後からいくらでも集計できますし、アプリを作った時には思いつかなかった分析方法も使えたりすると思います。
tanaki

2021/01/18 15:04

ご回答ありがとうございます。 CSVについて確認いたしました。 確かに、こちらのほうが手軽な上に、取り扱いやすい印象を受けました。 ご教授ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問