И я создал Базовый объект данных («Exstand»), который выглядит как структура JSON ниже (те же поля), и я пытаюсь читать из файла JSON и записывать в массив объектов Core Data.
У меня есть локальный (хранящийся в Xcode) JSON-файл, который содержит данные, выглядящие так:
[{
"objectid": 13003,
"lat": 40.198539203831054,
"long": 20.294164128143816,
"adresse": "1 Random Street
"zeitraum": "v. 7-20h",
"stellplatzanzahl": 3
},
{
"objectid": 13004,
"lat": 50.25018761410509,
"long": 30.44382262875748,
"adresse": "2 Random Street",
"zeitraum": "",
"stellplatzanzahl": 6
}]
Я просмотрел много уроков и постов здесь, но не могу, чтобы я работал, потому что они либо открывают удаленный файл и / или не пытаются сохранить их в Core Data.
Это код, который у меня есть, и он вылетает, когда я пытаюсь добавить объект в массив. Когда строка .append прокомментирована, я вижу в консоли, что она на самом деле не записывает данные в «stand».
class EventDetails: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var eventMap: MKMapView!
var annotation:MKAnnotation!
var Standarray: [Exstand] = []
var stand:Exstand? = nil
override func viewDidLoad() {
super.viewDidLoad()
do {
let data = NSData(contentsOf: url!)
let jsonData = try JSONDecoder().decode([Nstand].self, from: data! as Data)
for detail in jsonData {
self.stand?.adresse = detail.adresse as String
self.stand?.lat = detail.lat as Double
self.stand?.long = detail.long as Double
self.stand?.stellplatzanzahl = Int16(detail.stellplatzanzahl as Int)
self.stand?.zeitraum = detail.zeitraum as String
print(stand?.adresse)
print("adressen!")
//The line below crashes the app Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
Standarray.append(stand!)
}
print("array!")
print(Standarray)
} catch {
print(error) // Handle Error
}
}
}
Я также создал эту структуру, потому что в некоторых уроках они работали с ней вместо сущностей Core Data, так что, если это лучше, я также могу использовать это.
struct NStand : Codable{
var objectid: Int
var lat: Double
var long: Double
var adresse: String
var zeitraum: String
var stellplatzanzahl: Int
}
У меня также есть данные JSON в файле XML. Мне все равно, откуда его читать, все, что я хочу, - это мое приложение, чтобы фактически читать и хранить данные.
Заранее спасибо за любой полезный совет.