我一直在学习如何将json数据解析为swift ...我试图将我的密码区域显示为文本字段...我创建了两个三个swift文件mapview.swift,maphandler.swift和mapmodel。 swift。问题是我想将数据从函数内部获取到另一个swift文件,以便我可以在文本字段上显示它...我尝试创建一个结构来存储该密码,然后将其传递给mapview .swift但没有运气
这是能够将密码作为数据获取的代码
func parseJson(Json:Data) {
let decoder = JSONDecoder()
do{
let decodedData = try decoder.decode(MapModel.self, from: Json)
let format = decodedData.results[0].formatted_address
var pinCode:String!
for item in decodedData.results[0].address_components{
if item.types[0] == "postal_code"{
pinCode = ( item.long_name)
}
}
print(pinCode)
}
catch{
print(error)
return
}
}
我要做的就是将密码数据发送到mapview.swift,以便我可以在文本字段上显示它
答案 0 :(得分:0)
看起来您想要的是返回PIN码的函数。您可以按照以下步骤进行操作:
<div class="new-task" id="task-input">
<div >Task: <input id="add-new-task" type="text"></div>
<div id="add-time">Time: <input type="text"></div>
<button class ="save-task" id ="save-task" onclick="">Save task</button>
</div>
您可以通过从其他swift文件中调用此函数来使用此功能,如下所示(其中func parsePinCode(fromJson json: Data) -> String? {
let decoder = JSONDecoder()
do {
let decodedData = try decoder.decode(MapModel.self, from: json)
let format = decodedData.results[0].formatted_address
var pinCode:String!
for item in decodedData.results[0].address_components{
if item.types[0] == "postal_code"{
pinCode = (item.long_name)
// Return the pinCode if we found one
return pinCode
}
}
} catch {
print(error)
}
return nil
}
是要解码的json数据):
myJsonData
编辑:
如果要返回多个值,则可以使用所有要返回的值创建一个结构。例如:
let pinCode = parsePinCode(fromJson: myJsonData)