| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
1,503 バイト追加 、 2021年5月2日 (日) 02:58
let jsonString = String(data: json, encoding: .utf8)!
print(jsonString)
</pre>
=====画面とオブジェクトを共有する=====
*struct -> class
*ObservableObject を適用
*@Published
*上記を適用すると、Codable に適合させるには、明示的に処理を記述する必要がある
<pre>
class Host : Codable, ObservableObject {
@Published var host: String = ""
@Published var ip: String = ""
@Published var macaddr: String = ""
@Published var comment: String = ""
 
init(host: String, ip: String, macaddr: String, comment: String) {
self.host = host
self.ip = ip
self.macaddr = macaddr
self.comment = comment
}
init() {}
 
/// 変換対象プロパティ
enum CodingKeys: CodingKey {
case host
case ip
case macaddr
case comment
}
 
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
host = try container.decode(String.self, forKey: .host)
ip = try container.decode(String.self, forKey: .ip)
macaddr = try container.decode(String.self, forKey: .macaddr)
comment = try container.decode(String.self, forKey: .comment)
}
 
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(host, forKey: .host)
try container.encode(ip, forKey: .ip)
try container.encode(macaddr, forKey: .macaddr)
try container.encode(comment, forKey: .comment)
}
</pre>

案内メニュー