Sök…
Introduktion
Kodbar läggs till med Xcode 9, iOS 11 och Swift 4. Kodbar används för att göra dina datatyper kodade och avkodningsbara för kompatibilitet med externa representationer som JSON.
Kodbar användning för att stödja både kodning och avkodning, förklarar överensstämmelse med Codable, som kombinerar kodningsbara och avkodningsbara protokoll. Den här processen kallas att göra dina typer kodbara.
Användning av kodbar med JSONEncoder och JSONDecoder i Swift 4
Låt oss ta ett exempel med filmstruktur, här har vi definierat strukturen som kodbar. Så vi kan koda och avkoda det enkelt.
struct Movie: Codable {
enum MovieGenere: String, Codable {
case horror, skifi, comedy, adventure, animation
}
var name : String
var moviesGenere : [MovieGenere]
var rating : Int
}
Vi kan skapa ett objekt från film som:
let upMovie = Movie(name: "Up", moviesGenere: [.comedy , .adventure, .animation], rating : 4)
UpMovie innehåller namnet “Up” och det är filmGenere är komedi-, äventyrs- och animationshäxa som innehåller 4 betyg av 5.
Koda
JSONEncoder är ett objekt som kodar instanser av en datatyp som JSON-objekt. JSONEncoder stöder kodningsobjektet.
// Encode data
let jsonEncoder = JSONEncoder()
do {
let jsonData = try jsonEncoder.encode(upMovie)
let jsonString = String(data: jsonData, encoding: .utf8)
print("JSON String : " + jsonString!)
}
catch {
}
JSONEncoder ger oss JSON-data som används för att hämta JSON-sträng.
Outputsträngen kommer att vara som:
{
"name": "Up",
"moviesGenere": [
"comedy",
"adventure",
"animation"
],
"rating": 4
}
Avkoda
JSONDecoder är ett objekt som avkodar instanser av en datatyp från JSON-objekt. Vi kan få objektet tillbaka från JSON-strängen.
do {
// Decode data to object
let jsonDecoder = JSONDecoder()
let upMovie = try jsonDecoder.decode(Movie.self, from: jsonData)
print("Rating : \(upMovie.name)")
print("Rating : \(upMovie.rating)")
}
catch {
}
Genom att avkoda JSONData tar vi tillbaka filmobjektet. Så vi kan få alla värden som sparas i det objektet.
Output kommer att vara som:
Name : Up
Rating : 4