'How to convert swift-struct object name using swift-string
I have a struct name called Car. Car has two attributes(noOfTyres, ownerName).
Struct Car {
var noOfTyres: Int
var ownerName: String
}
The string value is let objStr = "Car/ownerName"
how to convert the objStr to swiftObject like Car.ownerName?
Solution 1:[1]
you could try something like this:
let str = "Car/ownerName"
let obj = Car.toObj(str)
print("---> obj: \(obj)") // --> optional "xxxx"
struct Car {
var noOfTyres: Int
static var ownerName: String = "xxxx"
static func toObj(_ str: String) -> String? {
if str.prefix(4) == "Car/" && str.dropFirst(4) == "ownerName" {
return Car.ownerName // <-- here
} else {
return nil
}
}
}
Solution 2:[2]
You can create struct object by below code:
struct Car {
var noOfTyres: Int
var ownerName: String
}
class Demo {
func createStructObject() {
var structData = [Car]()
structData.append(Car(noOfTyres: 2, ownerName: "Innova"))
let name = structData[0].ownerName
print(name)
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | prifiyia nunes |
