私はこのようなJSONファイルJsonファイルを2回のコレクションビューで素早く解析するには?
{
"dicts": [
{
"main": "",
"note1": "",
"note2": "",
"note3": "",
"note4": ""
},
{
"main": "",
"note1": "",
"note2": "",
"note3": "",
"note4": "",
"note5": ""
},
{
"main": "",
"note1": "",
"note2": ""
}
]
}
私のアプリは2 view controllers
collection view
を持つ各を持っています。最初にcollection view
main
のそれぞれのを表示します。main
をクリックすると、それぞれの内容のnote
のデータをcell
に設定する際に問題が発生します。私は誰もがnote
という値を呼ぶことができました。
モデル:私はname.text
に一つだけのデータを入力することができる細胞で更新する方法
struct SecPage {
var note1:String?
var note1:String?
var note2:String?
var note3:String?
var note4:String?
var note5:String?
}
static func downSec() -> [SecPage] {
let jsonFile = Bundle.main.url(forResource: "info", withExtension: "json")
let jsonData = try? Data(contentsOf: jsonFile!)
var noteArray = [SecPage]()
do{
if let jsonResult = try JSONSerialization.jsonObject(with: jsonData!, options: .mutableContainers) as? Dictionary<String,AnyObject>{
let name = jsonResult["dicts"] as? [Dictionary<String,AnyObject>]
for note in name!{
let note1 = note["note1"] as? String
let note2 = note["note2"] as? String
let note3 = note["note3"] as? String
let note4 = note["note4"] as? String
let note5 = note["note5"] as? String
let noteinfo = SecPage(note1: note1 ,note2: note2,note3: note3, note4: note4, note5: note5, note6: note6)
noteArray.append(noteinfo) }} } catch{print("note not found")}
return noteArray
}
ビュー
class CollectionViewCell2: UICollectionViewCell {
@IBOutlet weak var img: UIImageView!
@IBOutlet weak var names: UILabel!
func updateUIsec(data:dataObj) {
names.text = data.note1
}
}
とどのように効率的にjson
を取得するためにModel class
を使用する方法ファイルを開き、view
に送信してください。
あなたはJSONを変更できますか?あまり役に立ちません。 'note1'や' note2'などの代わりに、文字列の配列である 'notes'が必要です。 – Paulw11
'notes 'の配列を持っている場合、' cell label'を更新するには? – Digs
さて、 'main''String'プロパティと' notes'' [String ]'プロパティを持つ 'SecPage'構造体があります。 JSONをこれらの構造体の配列にパースします。その後、配列から適切な要素を2番目のView Controllerに渡します。 – Paulw11