How to create struct of Codable and enum to generic?
up vote
-1
down vote
favorite
I want to make generic specially "WeekDays.CodingKeys
struct WeekDays : Codable {
var sunday : String?
// this is coding Keys
enum CodingKeys: String, CodingKey {
case sunday = "sunday"
}
// this is decoder method
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
sunday = checkDataValue(values: values, str: .sunday)
}
// this method for convert each and every value string
mutating func checkDataValue(values: KeyedDecodingContainer<WeekDays.CodingKeys>, str: CodingKeys) -> String {
var strData = String()
do {
strData = (try values.decodeIfPresent(String.self, forKey: str))!
}
catch {
do {
let intStrData = (try values.decodeIfPresent(Int.self, forKey: str))!
strData = "(intStrData)"
}
catch {
do {
let doubleStrData = (try values.decodeIfPresent(Double.self, forKey: str))!
strData = "(doubleStrData)"
}
catch {
strData = ""
}
}
}
return strData
}
}
// I want to make generic specially "WeekDays.CodingKeys"
mutating func checkDataValue(values: KeyedDecodingContainer, str: CodingKeys) -> String
ios swift generics codable swift4.2
add a comment |
up vote
-1
down vote
favorite
I want to make generic specially "WeekDays.CodingKeys
struct WeekDays : Codable {
var sunday : String?
// this is coding Keys
enum CodingKeys: String, CodingKey {
case sunday = "sunday"
}
// this is decoder method
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
sunday = checkDataValue(values: values, str: .sunday)
}
// this method for convert each and every value string
mutating func checkDataValue(values: KeyedDecodingContainer<WeekDays.CodingKeys>, str: CodingKeys) -> String {
var strData = String()
do {
strData = (try values.decodeIfPresent(String.self, forKey: str))!
}
catch {
do {
let intStrData = (try values.decodeIfPresent(Int.self, forKey: str))!
strData = "(intStrData)"
}
catch {
do {
let doubleStrData = (try values.decodeIfPresent(Double.self, forKey: str))!
strData = "(doubleStrData)"
}
catch {
strData = ""
}
}
}
return strData
}
}
// I want to make generic specially "WeekDays.CodingKeys"
mutating func checkDataValue(values: KeyedDecodingContainer, str: CodingKeys) -> String
ios swift generics codable swift4.2
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I want to make generic specially "WeekDays.CodingKeys
struct WeekDays : Codable {
var sunday : String?
// this is coding Keys
enum CodingKeys: String, CodingKey {
case sunday = "sunday"
}
// this is decoder method
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
sunday = checkDataValue(values: values, str: .sunday)
}
// this method for convert each and every value string
mutating func checkDataValue(values: KeyedDecodingContainer<WeekDays.CodingKeys>, str: CodingKeys) -> String {
var strData = String()
do {
strData = (try values.decodeIfPresent(String.self, forKey: str))!
}
catch {
do {
let intStrData = (try values.decodeIfPresent(Int.self, forKey: str))!
strData = "(intStrData)"
}
catch {
do {
let doubleStrData = (try values.decodeIfPresent(Double.self, forKey: str))!
strData = "(doubleStrData)"
}
catch {
strData = ""
}
}
}
return strData
}
}
// I want to make generic specially "WeekDays.CodingKeys"
mutating func checkDataValue(values: KeyedDecodingContainer, str: CodingKeys) -> String
ios swift generics codable swift4.2
I want to make generic specially "WeekDays.CodingKeys
struct WeekDays : Codable {
var sunday : String?
// this is coding Keys
enum CodingKeys: String, CodingKey {
case sunday = "sunday"
}
// this is decoder method
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
sunday = checkDataValue(values: values, str: .sunday)
}
// this method for convert each and every value string
mutating func checkDataValue(values: KeyedDecodingContainer<WeekDays.CodingKeys>, str: CodingKeys) -> String {
var strData = String()
do {
strData = (try values.decodeIfPresent(String.self, forKey: str))!
}
catch {
do {
let intStrData = (try values.decodeIfPresent(Int.self, forKey: str))!
strData = "(intStrData)"
}
catch {
do {
let doubleStrData = (try values.decodeIfPresent(Double.self, forKey: str))!
strData = "(doubleStrData)"
}
catch {
strData = ""
}
}
}
return strData
}
}
// I want to make generic specially "WeekDays.CodingKeys"
mutating func checkDataValue(values: KeyedDecodingContainer, str: CodingKeys) -> String
ios swift generics codable swift4.2
ios swift generics codable swift4.2
asked Nov 19 at 12:11
Bhavesh Odedara
197
197
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53374387%2fhow-to-create-struct-of-codable-and-enum-to-generic%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown