lass parent Task sein { lass child Task sein { print("child started, isCancelled = ", Task.isCancelled) // NEIN false for index in (1...[phone]) { print(index) } print("child finished, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 Sekunde parent.cancel() /////// lass parent sein Task { async let child: Void = { print("child started, isCancelled =", Task.isCancelled) for index in (1...[phone]) { print(index) } print("child finished, isCancelled =", Task.isCancelled) }() await child } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 Sekunde parent.cancel()
iOS
Gab es Probleme mit der Konkurrenz (Sendable, unchecked Sendable, Übergänge zwischen Akteuren) in den Modulen, mit denen Sie direkt gearbeitet haben?
Protokoll SomeProtocol {} func test1_1(wert: SomeProtocol) {} func test2_1(wert: some SomeProtocol) {} func test1_2(wert: any SomeProtocol) {}
Wie funktioniert das Design-System zwischen UIKit und SwiftUI — gibt es Duplikate von Komponenten oder Wrappers?
Protokoll SomeProtocol {} func test1_1(wert: SomeProtocol) {} func test1_2(wert: any SomeProtocol) {}
Protokoll SomeProtocol {} func test1_1(wert: SomeProtocol) {} func test1_2(wert: any SomeProtocol) {} func test2_1(wert: some SomeProtocol) {} func test2_2<Wert: SomeProtocol>(wert: Wert) {} Klasse A { func test2_2<Wert: SomeProtocol>(wert: Wert) { } } Klasse B: SomeProtocol { } A().test2_2(wert: B())
Erzähl mir mehr über dein letztes Projekt — das Fotogalerie-Modul bei Avito, für das du verantwortlich warst (Kurzzeitvermietung, Buchungsformular usw.)
Ist die Navigation in UIKit geschrieben, und die Alerts/Sheets werden in UIKit ausgelagert oder verwenden Sie die nativen Mittel von SwiftUI?
lass den Elternteil Task sein { let child = Task { print("Kind gestartet, isCancelled = ", Task.isCancelled) // for index in (1...[phone]) { print(index) } print("Kind beendet, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 Sekunde parent.cancel()
Erzähl mir von nützlichen Property Wrappers, die du im Projekt verwendet hast
Wie wurde die Interaktion mit Gesten und Zoom in der Fotogalerie umgesetzt — in UIKit oder SwiftUI?
Gibt es im Projekt noch weitere Makros außer der Netzwerkschicht?
struct ExampleView: View { var body: some View { VStack { FormView() Button("Reset") { // TODO: } } } } // NUR LESEN 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) } } }
Wie sehr helfen dir KI-Tools (Cursor, Proxyman usw.), produktiver bei der Arbeit zu sein?
Welche Version der Swift-Sprache wird im Projekt verwendet – höher als 6 oder niedriger?
Was ist das aktuelle minimale iOS-Ziel im Projekt?
Array { value1 value2 if condition { value3 } }
Als du zum Projekt kamst, war Swift 6 bereits vorhanden, oder fand der Übergang während deiner Zeit statt?
Endgültige Klasse ProfileViewModel1 { Enum Zustand { ... } var zustand: Zustand = .idle let dienst: UserService init(dienst: UserService) { ... } func onBackPress() { // Ansicht deinit } func loadUser() { zustand = .loading Task { [weak self] guard let self else { return } do { let benutzer = try await self.dienst.fetchUser() self.zustand = .loaded(benutzer) } catch { self.zustand = .failed(error.localizedDescription) } } } }
Gab es auf der letzten WWDC interessante Sitzungen oder Frameworks, die Sie in Ihrer Arbeit ausprobieren möchten?