###前提・実現したいこと
日記アプリを作成していてタイトル、詳細と一緒に現在時間も表示したい。
###エラー
Use of unresolved identifier 'timeDeta'
未解決の識別子の使用「timeDeta」
タイトルと詳細はカスタムセルを利用しTableViewに文字を出すことができたのですが現在時間の保存方法がわかりません。
###データを入力し保存する場所
// プロパティ @IBOutlet weak var textField: UITextField! @IBOutlet weak var textView: UITextView! @IBOutlet weak var imageView: UIImageView! //表示文字の変更 @IBOutlet weak var mytitle: UILabel! @IBOutlet weak var mydetail: UILabel! let now = Date() // ボタンが押された時の処置 @IBAction func addBtn(_ sender: UIButton) { // TextFieldに何も入力されていない場合は何もせずに1つ目のビューへ戻ります。 let myTitle = textField.text! as String let myDetail = textView.text! as String print(myTitle) print(myDetail) if myTitle == "" || myTitle == nil { // dismiss(animated: true, completion: nil) mytitle.text="内容を入力してください" return }else if myDetail == "" || myDetail == nil { // dismiss(animated: true, completion: nil) mydetail.text="タイトルを入力してください" return } // context(データベースを扱うのに必要)を定義。 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext // taskにTask(データベースのエンティティです)型オブジェクトを代入します。 let daily = Daily(context: context) // 先ほど定義したTask型データのname、categoryプロパティに入力、選択したデータを代入します。 print("テキストフィールドは\(myTitle)") print("テキストビューは\(myDetail)") daily.dailyTitle = myTitle daily.dailyDetail = myDetail daily.deilyDeta = now as NSDate // 上で作成したデータをデータベースに保存します。 (UIApplication.shared.delegate as! AppDelegate).saveContext() dismiss(animated: true, completion: nil) }
###データの表示場所(TableViewにタイトル、詳細は表示可能)
// データを取ります。 func read(){ // カラの配列を用意します。 myTitle = [] myDetail = [] // AppDelegateを使う準備 let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate // エンティティを操作するためのオブジェクト let viewContext = appDelegate.persistentContainer.viewContext // どのエンティティからデータを取得してくるか設定 let query: NSFetchRequest<Daily> = Daily.fetchRequest() do{ // データを一括取得 let fetchResults = try viewContext.fetch(query) // データの取得 for result: AnyObject in fetchResults { let title: String! = result.value(forKey: "dailyTitle") as! String let detail: String! = result.value(forKey: "dailyDetail") as! String let time: String! = result.value(forKey: "dailyDeta") as! String // let time: String! = result.value(forKey: "deilyDeta") // print("時間は\(time)") if title == "" || title == nil || detail == "" || detail == nil{ print("空かnilです") }else{ // MARK:ここオプショナルになるなぜ? print("titleは:\(title)detailは:\(detail)") myTitle.append(title!) myDetail.append(detail!) myTime.append(timeDeta!) } } }catch{ } }
###試したこと
CoraDetaに保存する際に as String as NSData とダウンキャストをし保存してデータ表示画面でCoraDetaの取り出し方法がわかりません。
coradetaの中身がNSDeta型でこのNSDetaデータをDetaformatに保存できない。
###補足情報(言語/FW/ツール等のバージョンなど)
Swift3
Xcode 10.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。