#問題点
・TableViewを表示できない
Swift
1import Foundation 2import UIKit 3import SwiftyJSON 4import RealmSwift 5 6class TaskViewController : UIViewController, UITableViewDelegate, UITableViewDataSource { 7 @IBOutlet weak var Bar: UINavigationBar! 8 @IBOutlet weak var tableView: UITableView! 9 let ap = UIApplication.shared.delegate as! AppDelegate 10 11 override func viewDidLoad(){ 12 super.viewDidLoad() 13 let Document_path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String 14 let fileName = "Test" 15 let path = Document_path + "/" + fileName + ".json" 16 print(path) 17 print(ap.tasks) 18 self.tableView.reloadData() 19 } 20 21 override func didReceiveMemoryWarning() { 22 super.didReceiveMemoryWarning() 23 } 24 25 func JsonGet(fileName :String) -> JSON { 26 let Document_path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String 27 let path = Document_path + fileName + ".json" 28 print(path) 29 30 do{ 31 let jsonStr = try String(contentsOfFile: path) 32 print(jsonStr) 33 34 let json = JSON.parse(jsonStr) 35 36 return json 37 } catch { 38 return nil 39 } 40 41 } 42 43 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ //セクションごとの行数を返す 44 return ap.tasks.count 45 } 46 47 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{ //各行に表示するセルを返す 48 let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) 49 50 // セルに表示する値を設定する 51 cell.textLabel!.text = ap.tasks[indexPath.row] 52 53 return cell 54 } 55 56 func numberOfSections(in tableView: UITableView) -> Int { //セクション数を返す(初期値は1) 57 return 1 //今回は別に何かセクション分けする必要はないので必ず1を返す 58 } 59 60 func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { //セクションタイトルを返す(初期値は空) 61 return "" 62 } 63 64 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 65 print("セル番号:(indexPath.row) セルの内容:(fruits[indexPath.row])") 66 }
表示させようとしているデータ自体は、AppDelegateでRealmからデータをforで読み込んで配列化したものです
Swift
1 let data = try! Realm() 2 let BaseData = data.objects(Task.self).sorted(byKeyPath: "priority", ascending: true) 3 4 for i in 0...BaseData.count-1 { 5 self.tasks.append(BaseData[i].TaskName) 6 } 7 8 print(tasks)
tasks = ["テスト2チェック", "テスト4だよ", "こんにちは世界", "", "テストだよ", "テスト2だよ", "テスト3だよ", "テストじゃい!1", "テストじゃち"]
AppDelegateでは
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { } ```の中で処理しているので Realmからデータを読み込んでくる ↓ AppDelegateから配列化されたデータをTableViewが受け取り表示 ということを目論んでいたのですが、実際のTableViewには何も表示されません・・・
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/14 07:11
2017/08/15 01:46
2017/08/15 06:14
2017/08/16 06:31