質問編集履歴

1 画像の追加

退会済みユーザー

退会済みユーザー

2017/02/26 23:00  投稿

signal SIGABRT
```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() // 現在日時の取得
```
エンティティはこのようになっています
![イメージ説明](6f1166842d5fcf78e7a357acfac4156c.png)
![イメージ説明](6f1166842d5fcf78e7a357acfac4156c.png)
![イメージ説明](4cfcddaa4418462006cd95c3644260a5.png)
![イメージ説明](e5c432f28411b12466e051a5350d9de6.png)
![イメージ説明](d1df4e898bc76fadd48b7587c82c1a07.png)
  • Core Data

    64 questions

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

  • Swift

    14235 questions

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

  • TableView

    356 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る