Im meinen App swift 3Update auf schnelle 3 JSON-Datei
Aktualisierung Ich habe ein paar Fehler
for (k, v): (AnyObject, AnyObject) in value {
Rufen ein NSDictionary.Iterator.Element immer konvertierbar ist nicht auf (ANYOBJECT, ANYOBJECT)
Subsiquently Im bekommen diesen Fehler
var artworks = [Artwork]()
func loadInitialData() {
// 1
let fileName = Bundle.main.path(forResource: "PublicArt", ofType: "json");
let data: Data = try! Data(contentsOf: URL(fileURLWithPath: fileName!), options: NSData.ReadingOptions(rawValue: 0))
// 2
var error: NSError?
let jsonObject: AnyObject!
do {
jsonObject = try JSONSerialization.jsonObject(with: data,
options: JSONSerialization.ReadingOptions(rawValue: 0))
} catch let error1 as NSError {
error = error1
jsonObject = nil
}
// 3
if let jsonObject = jsonObject as? [String: AnyObject], error == nil,
// 4
let jsonData = JSONValue.fromObject(jsonObject)?["data"]?.array {
for artworkJSON in jsonData {
if let artworkJSON = artworkJSON.array,
// 5
let artwork = Artwork.fromJSON(artworkJSON) {
artworks.append(artwork)
}
}
}
}
JsonObject produziert 'ANY' nicht den erwarteten kontextuellen Ergebnistyp 'ANYOBJECT'
und
'ANYOBJECT' zu erwarten Typen entsprechenArgumenttyp [String: ANYOBJECT] nicht
Ich nehme an, das ist eine einfache, aber ich habe nicht in einem Jahr codiert und wäre sehr dankbar für die Hilfe
Dank
Travis
UPDATE
Also ich aktualisiert nur den Code
aber in der JSON.swift
static func fromObject(_ object: AnyObject) -> JSONValue? {
switch object {
case let value as NSString:
return JSONValue.jsonString(value as String)
case let value as NSNumber:
return JSONValue.jsonNumber(value)
case _ as NSNull:
return JSONValue.jsonNull
case let value as NSDictionary:
var jsonObject: [String:JSONValue] = [:]
for (k, v): (AnyObject, AnyObject) in value {
if let k = k as? NSString {
if let v = JSONValue.fromObject(v) {
jsonObject[k as String] = v
} else {
return nil
}
}
}
return JSONValue.jsonObject(jsonObject)
case let value as NSArray:
var jsonArray: [JSONValue] = []
for v in value {
if let v = JSONValue.fromObject(v as AnyObject) {
jsonArray.append(v)
} else {
return nil
}
}
return JSONValue.jsonArray(jsonArray)
default:
return nil
}
}
}
Fehlerdatei ein Fehler bekommen ist:
nsdictionary.iterate.element '(aka (Schlüssel: Jeder, Wert: Any)') ist nicht umwandelbar 'ANYOBJECT, ANYOBJECT)' für
für Codezeile
for (k, v): (AnyObject, AnyObject) in value {
Entschuldigung die späte Antwort
Grüße
Travis
Die Fehler in der zweiten Hälfte sind in // 2 und // 4 bzw. – travis