私のアプリケーションにはViewControllerとListViewControllerの2つのビューコントローラがあります。 View Controllerで完了するフォームがあり、ListViewコントローラは完成したすべてのフォームのテーブルビューを提供します。私はデータを入力したり、データを削除したりすることができますが、編集機能のコーディングには苦労しています。私のことはユーレカを使って作成されていることに注意してください。以下は、情報をコアデータにロードするコードです。テーブルビューによるコアデータの編集
私は引き続きこれに対する答えを見つけます。私は多くのYouTubeの動画を見てきましたが、日付がついているように見えます。新しいバージョンの迅速にマップすることはできません。セグエを使用して
試み:エラー「タイプ 『OTSProcessConfirmations.Type』には添字のメンバーを持っていません」取得のコードの最後の行に
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "editOTS"
{
let v = segue.destination as! ViewController
let indexpath = self.tableView.indexPathForSelectedRow
let row = indexpath?.row
v.PC = OTSProcessConfirmations[row!]
}
var branch: String = ""
var enterDate: Date? = nil
var OTSQ1: Bool = false
var OTSQ2: Bool = false
var OTSQ3: Bool = false
var OTSQ4: Bool = false
var OTSQ5: Bool = false
var OTSQ6: Bool = false
var OTSQ7: Bool = false
var OTSQ8: Bool = false
var OTSQ9: Bool = false
var OTSQ10: Bool = false
var OTSQ11: Bool = false
var OTSQ12: Bool = false
var OTSQ13: Bool = false
var OTSQ14: Bool = false
var processConfirmation: OTSProcessConfirmations?
@IBAction func BtnSave(_ sender: Any) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let ots = OTSProcessConfirmations(context:context)
ots.branch = branch
ots.enterDate = enterDate
ots.otsq1 = OTSQ1
ots.otsq2 = OTSQ2
ots.otsq3 = OTSQ3
ots.otsq4 = OTSQ4
ots.otsq5 = OTSQ5
ots.otsq6 = OTSQ6
ots.otsq7 = OTSQ7
ots.otsq8 = OTSQ8
ots.otsq9 = OTSQ9
ots.otsq10 = OTSQ10
ots.otsq11 = OTSQ11
ots.otsq12 = OTSQ12
ots.otsq13 = OTSQ13
ots.otsq14 = OTSQ14
// Save the data to coredata
(UIApplication.shared.delegate as! AppDelegate).saveContext()
navigationController!.popViewController(animated: true)
}
リストビューコントローラのコード
import UIKit
class ListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var tableView: UITableView!
var OTSs : [OTSProcessConfirmations] = []
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
// get the data from core data
getData()
/// reload the table view
tableView.reloadData()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
<#code#>
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return OTSs.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let ots = OTSs[indexPath.row]
cell.textLabel?.text = ots.branch!
return cell
}
func getData() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do {
OTSs = try context.fetch(OTSProcessConfirmations.fetchRequest())
}
catch{
print("Fetching Failed")
}
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
if editingStyle == .delete {
let ots = OTSs[indexPath.row]
context.delete(ots)
(UIApplication.shared.delegate as! AppDelegate).saveContext()
do {
OTSs = try context.fetch(OTSProcessConfirmations.fetchRequest())
}
catch {
print("Fetching Failed")
}
}
tableView.reloadData()
}
}
フィードバックいただきありがとうございます。私は私のプロジェクトを再開し、適切な命名のガイドラインに従っていきます。誰もが推薦できる初心者のための参考資料はありますか? –
最も包括的なリファレンスは、[スウィフト言語ガイド](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2です-ID1) – vadian