{"data":{"allPost":{"edges":[{"node":{"slug":"/post/2022/08/using-functional-binding-to-observe-in-swiftui-19a8","title":"在 SwiftUI 中使用函數式 Binding 實現觀察者模式","subtitle":"","isPublished":true,"createdTime":"2022-08-19T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["SwiftUI","Binding","Swift","觀察者模式"],"category":"編程","file":{"childMdx":{"excerpt":"故事 這週，我的同事問了我一個問題：在 SwiftUI 中怎麼觀察用戶對  Picker  的選擇行爲？ 這是一個來自真實業務的問題，所以我覺得值得我花費時間去解決它。 範例代碼如下所示，然後我的同事想觀察用戶對  Picker  候選項的選擇行爲。 分析 但是，「觀察」本身的意義可能會隨着上下文變動而變動： 它可以表示用戶在  Picker  上放下手指的那一刻。 它可以表示用戶在  Picker  上擡起手指的那一刻。 它可以表示  Picker  對  $selection  進行值變更的那一刻。 上述每一項都將導致不同的最終解決方案。 因爲 SwiftUI 控件可以使用 style…"}}}},{"node":{"slug":"/post/2022/03/unexplained-swiftui-the-programming-language-nature-of-swiftui-d20e","title":"SwiftUI 探祕 - SwiftUI 的編程語言本質","subtitle":"","isPublished":true,"createdTime":"2022-03-06T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["SwiftUI 探祕","SwiftUI","Swift"],"category":"編程","file":{"childMdx":{"excerpt":"前言 蘋果在 WWDC 2019 向開發者介紹了 SwiftUI。多數人也許會將 SwiftUI 看成又一個如  Flutter  或者  React.js  又或者  Vue.js  這樣踩在聲明式、無狀態 UI 編程潮流浪尖的 UI 框架。雖然 SwiftUI 與上述框架有着非常多的共同點，但是 SwiftUI 從設計到實現上都與上述框架有着本質的不同。 實際上，相較於是一個編程框架，SwiftUI 更加像是一種編程語言。不相信？讓我來看看一個用「原生」SwiftUI 代碼編寫的斐波那契数列計算程序。 然後通過添加以下兩行代碼，我們可以在 Swift Playground…"}}}}]}},"pageContext":{"slug":"/zh-Hant","locale":{"identifier":"zh-Hant","slug":"/zh-Hant"},"title":null,"showsPageTitle":false,"keywords":["WeZZard","Pieces of My Soul"],"description":"","items":["1c2f780d-e035-5c3e-ba96-254e56803c75","1488d9d1-b04a-52ec-bff4-f6a0e73301f8"],"paginationInfo":{"basePath":"/zh-Hant","pageIndex":0,"pagesCount":1,"previousPageTitle":"Earlier Posts","nextPageTitle":"Later Posts"}}}