iOS
protokoll SomeProtocol {} func test1_1(érték: SomeProtocol) {} func test1_2(érték: any SomeProtocol) {}
záró osztály ProfileViewModel1 { állapot enum { ... } változó állapot: Állapot = .idle hagyományos szolgáltatás: UserService init(szolgáltatás: UserService) { ... } func onBackPress() { // nézet deinit } func loadUser() { állapot = .loading Task { [weak self] guard let self else { return } do { let felhasználó = try await self.szolgáltatás.fetchUser() self.állapot = .loaded(felhasználó) } catch { self.állapot = .failed(error.localizedDescription) } } } }
Miért nem oldja meg az adatverseny problémáját, ha csak írási mutexet adunk hozzá? Hogyan kell helyesen használni egy mutexet egy közös változó védelmére?
Röviden mutatkozz be, és írd le jelenlegi munkádat.
Miért ad vissza néhány lekérdezés olyan árat, ami soha nem volt (például egy közbenső érték a régi és az új ár között)?
```swift struct ContentView: View { var body: some View { ScrollView { content .padding(20) } .background(Color(.systemGroupedBackground)) .overlay(alignment: .bottom) { continueButton } } } ``` ```swift struct ContentView: View { var body: some View { ScrollView { content .padding(20) } .background(Color(.systemGroupedBackground)) .safeAreaInset(edge: .bottom) { continueButton } } } ```
Ha egy újrahasznosítható gombkomponenst terveznél egy SwiftUI alapú dizájrendszerhez különböző stílusokkal (elsődleges/hátsó), hogyan valósítanád meg?
Egyszerű memória alapú cache könyvtárat kell írni. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
struct ExampleView: View { var body: some View { VStack { FormView() Button("Reset") { // TODO: } } } } // CSAK OLVASHATÓ struct FormView: View { @State private var firstname = "" @State private var lastname = "" @State private var email = "" @State private var website = "" var body: some View { Form { TextField("Enter firstname", text: self.$firstname) TextField("Enter lastname", text: self.$lastname) TextField("Enter email address", text: self.$email) TextField("Enter website address", text: self.$website) } } }
Amikor megérkeztél a projekthez, már volt Swift 6, vagy a váltás veled történt?
protokoll SomeProtocol {} függvény test1_1(érték: SomeProtocol) {} függvény test1_2(érték: bármilyen SomeProtocol) {} függvény test2_1(érték: some SomeProtocol) {} függvény test2_2<Érték: SomeProtocol>(érték: Érték) {} osztály A { függvény test2_2<Érték: SomeProtocol>(érték: Érték) { } } osztály B: SomeProtocol { } A().test2_2(érték: B())
Írja le szavakkal, hogyan oldaná meg az autó árának cache-elési problémáját: adatszerkezet, szinkronizáció, frissítés.
A projektben használt Swift nyelv verziója — 6 felett vagy alatt?
Hogyan kommunikál a View és a ViewModel a UIKit-ben — használják-e valami olyasmit, mint az RxSwift/Combine kötéseknél?
Mesélj érdekes forrásokról a fejlődéshez — YouTube csatornák, Telegram csatornák, közösségek, eszközök
protokoll SomeProtocol {} func test1_1(érték: SomeProtocol) {} func test2_1(érték: some SomeProtocol) {} func test1_2(érték: bármely SomeProtocol) {}
func getCarPrice() int64 { time.Sleep(1 * time.Second) return rand.Int63n(1000) } func main() { http.HandleFunc("/car/instant", func(resp http.ResponseWriter, req *http.Request) { fmt.Fprintf(resp, "%d", 0) }) http.ListenAndServe(":8080", nil) }
@MainActor final class ViewModel: ObservableObject { @Published var image: UIImage? func onDownloadPhoto(url: URL) { do { let data = try Data(contentsOf: url) image = UIImage.init(data: data) } catch { log.error("A kép letöltése sikertelen: \(error)") } } } Button("Letöltés") { onDownloadPhoto(url) }
Mi van a UIKit és SwiftUI bemutató moduljaihoz — milyen architektúra?
Volt-e érdekes szekció vagy keretrendszer a legutóbbi WWDC-n, amit kipróbálnál a munkádban?