2017-09-19 10 views
-3

私はswiftJSONを使用してJSONからデータを取得することができましたが、私はtableviewを作成しようとすると問題に直面しています。UITableViewのデータを日付で埋め込む方法は?

「history_date」によって私はセクションとテーブルビューを構築したい
"results": [ 
    { 
     "id": 1, 
     "user": { 
      "email": "", 
      "photo": "", 
      "cover_photo": "", 
      "username": "", 
      "name_display": "", 
      "location": null, 
      "share_count": 0, 
      "like_count": 0, 
      "subscriber_count": 0, 
      "comment_count": 0 
     }, 

     "subscribed": false, 
     "type": "view", 
     "text": "", 
     "history_date": "2017-08-07T06:51:19.243391Z" 
    } 
] 

+0

これは、UITableViewそのものというよりはむしろ、それを作成するために使用するデータモデルとはかなり異なるとは思いません。あなたが望むようにhistory_dateでモデルをソートし、それをテーブルビューに渡すと、それはあなたが望むように表示されます。 – Sparky

+0

あなたはdictineryでのdadaの編成を検討することもできます。これは、キーがちょうど1ヶ月の日付を指定するようになります。あなたが作成したいセクションに本当に依存しています – nevgauker

+0

あなたが既に試したコードであなたの質問を更新してください。さもなければ質問は不明確に閉じてください。 – davidethell

答えて

1

あなたはそれがはるかに容易になります素敵な構造体モデルを作成することができます。あなたのデータを解析しようとすると、あなたのモデルを作成しようとするクラスや構造体は両方が参照を持っていない場合は、構造体を使用することを示唆して動作します。

Struct Result { 
    let id: String 
    let subscribed: Bool 
    let type: String 
    let text: String 
    let history_date: String 
    // Here you can add another struck or class for your user 
    let user: User // this can be an array of users as well 
} 

あなたのモデルが正しく解析されていたら今、あなたは簡単にこれらの用いたドットにアクセスすることができます(。)表記をユーザー

Struct User { 
    let email: String 
    let photo: String 
    let cover_photo: String 
    let username: String 
    let location: Any // I added any but you can change to any format you receives 
    let share_count: Int 
    let like_count: Int 
    let subscriber_count: Int 
    let comment_count: Int 
} 

のための別の構造体を作成します。あなたのデータ配列に値を設定してください。

let results = [Result]() // I assume that you already filled the array. 

func numberOfSections(in tableView: UITableView) -> Int { 
    return results.count 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return results.user.count 
} 

// here comes the magic 
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 
    // remember I am not formatting the date you have to formate the date so it looks the way you want 
    return results[section].history_date 
} 
+0

エラー "タイプ[結果]の値にメンバー 'ユーザーがいません" –

+0

何かが間違っていることがわかるように単純なコードを表示する必要があります –

+0

返信時のエラーresults.user.count –

関連する問題