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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Core Data

Core DataはAppleのOS X and iOSのためのオブジェクトモデリングと持続性を持ったフレームワークです。Xcodeはエンティティー、属性そして関係性を特定するためのオブジェクトモデルの編集機能を提供します。

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

解決済

signal SIGABRT

削除済ユーザー
削除済ユーザー

総合スコア0

Core Data

Core DataはAppleのOS X and iOSのためのオブジェクトモデリングと持続性を持ったフレームワークです。Xcodeはエンティティー、属性そして関係性を特定するためのオブジェクトモデルの編集機能を提供します。

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

1回答

0評価

0クリップ

1840閲覧

投稿2017/02/25 15:37

編集2022/01/12 10:58

swift

import UIKit import CoreData class ViewController: UIViewController, UITableViewDataSource { @IBOutlet weak var tableView: UITableView! var people = [Person]() override func viewDidLoad() { super.viewDidLoad() title = "\"The List\"" //tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") } func tableView(_ tableVeiw: UITableView, numberOfRowsInSection section: Int) -> Int { return people.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") let person = people[indexPath.row] cell!.textLabel!.text = person.value(forKey: "name") as? String //subtitle 現在日時を取得 let nowtime = Person() nowtime.time = NSDate() // 現在日時の取得 let dateFormatter = DateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale! // ロケールの設定 dateFormatter.dateFormat = "yyyy年MM月dd日 HH:mm"//:ss" // 日付フォーマットの設定 //let nowtime = Kei[indexPath.row] let dateString = dateFormatter.string(from: nowtime.time as! Date) print(dateString) // -> 2014/06/25 02:13:18 cell!.detailTextLabel!.text = dateString //cell!.detailTextLabel!.text = person.value(forKey: "dateString") as? String return cell! } func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext if editingStyle == .delete{ //self.tableView.setEditing(true, animated: true) context.delete(people[indexPath.row]) (UIApplication.shared.delegate as! AppDelegate).saveContext() do { people = try context.fetch(Person.fetchRequest()) }catch let error as NSError { print("Could not save \(error), \(error.userInfo)") } tableView.reloadData() } } @IBAction func addName(_ sender: Any) { let alert = UIAlertController(title: "New name", message: "Enter a new name", preferredStyle: .alert) let saveAction = UIAlertAction(title: "Save", style: .default) { (action) in let textField = alert.textFields?.first self.saveName(name: textField!.text!) self.tableView.reloadData() } let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) alert.addTextField(configurationHandler: nil) alert.addAction(saveAction) alert.addAction(cancelAction) present(alert, animated: true, completion: nil) } func saveName(name: String){ let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext let person = Person(entity: Person.entity(), insertInto: context) person.setValue(name, forKey: "name") do{ try context.save() people.append(person) //self.data = [NSData()] } catch let error as NSError { print("Could not save \(error), \(error.userInfo)") } } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext do{ let result = try context.fetch(Person.fetchRequest()) people = result as! [Person] }catch let error as NSError { print("Could not save \(error), \(error.userInfo)") } //tableView.reloadData() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }

実現したいこと
アラートテキストで入力した最終更新時間の年月日時刻をsubtitleに保存し時間が進んでも変わらないようにしたい

やってみたこと
//subtitle 現在日時を取得

let now = NSDate()

NSDateのコードを以下のように変更し、コード的にはエラーはないのですが実行するとsignal SIGABRTが出てどこが間違っているのかいくら探しても見つからなくて困っています。

//subtitle 現在日時を取得 let nowtime = Person() nowtime.time = NSDate() // 現在日時の取得

エンティティはこのようになっています

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Core Data

Core DataはAppleのOS X and iOSのためのオブジェクトモデリングと持続性を持ったフレームワークです。Xcodeはエンティティー、属性そして関係性を特定するためのオブジェクトモデルの編集機能を提供します。

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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