Swift - decodable & codable: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Die Protokolle Decodable und Codable nutzt man oft im Zusammenhang mit externen Datenquellen z.B. JSON Daten Wenn du Beispielsweise JSON Daten mit einer URLSe…“)
 
Zeile 3: Zeile 3:
 
Wenn du Beispielsweise JSON Daten mit einer URLSession aus dem Netz holst und diese Daten '''in ein Struct einlesen''' möchtest, musst du dem Struct das Protokoll '''Decodable''' hinzufügen.
 
Wenn du Beispielsweise JSON Daten mit einer URLSession aus dem Netz holst und diese Daten '''in ein Struct einlesen''' möchtest, musst du dem Struct das Protokoll '''Decodable''' hinzufügen.
  
Möchtest du '''aus einem Struct JSON Daten erzeugen''' benötigt dein Struct das Protokoll '''Codable'''.
+
Möchtest du '''aus einem Struct JSON Daten erzeugen''' benötigt dein Struct das Protokoll '''Encodable'''.
 +
 
 +
Es gibt auch einen Type Alias, der beide Protokolle verbindet nämlich '''Codable''' ''Codable'' ist also das Gleiche wie ''Decodable,Encodable''
 +
 
 +
<syntaxhiglight lang="swift">
 +
struct WeatherData: Encodable{ // same as struct WeatherData: Encodable,Decodable
 +
    let name: String
 +
    let main: Main
 +
    let weather: [Weather]
 +
}
 +
</syntaxhighlight>

Version vom 19. Januar 2023, 11:27 Uhr

Die Protokolle Decodable und Codable nutzt man oft im Zusammenhang mit externen Datenquellen z.B. JSON Daten

Wenn du Beispielsweise JSON Daten mit einer URLSession aus dem Netz holst und diese Daten in ein Struct einlesen möchtest, musst du dem Struct das Protokoll Decodable hinzufügen.

Möchtest du aus einem Struct JSON Daten erzeugen benötigt dein Struct das Protokoll Encodable.

Es gibt auch einen Type Alias, der beide Protokolle verbindet nämlich Codable Codable ist also das Gleiche wie Decodable,Encodable

<syntaxhiglight lang="swift"> struct WeatherData: Encodable{ // same as struct WeatherData: Encodable,Decodable

   let name: String
   let main: Main
   let weather: [Weather]

} </syntaxhighlight>