Sobes.tech

@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) }

Senior
Salmon
52

A projektben használt Swift nyelv verziója — 6 felett vagy alatt?

Senior
Salmon
51

Vannak még makrók a projektben a hálózati rétegen kívül?

Senior
Salmon
50

Miért nem működik a jelenlegi kód a mainben lévő végtelen for ciklussal? Hogyan javítható?

Principal
Позитив Технолоджис
48

Mi a jelenlegi minimális iOS cél a projektben?

Senior
Salmon
47

Mi van a UIKit és SwiftUI bemutató moduljaihoz — milyen architektúra?

Senior
Salmon
47

Volt-e problémád a versenyhelyzettel (Sendable, unchecked Sendable, átmenet az aktorok között) azokban a modulokban, amiken közvetlenül dolgozottál?

Senior
Salmon
44

Használja a Viper architektúrát a UIKit-hoz? Minden alkalmazásra érvényes?

Senior
Salmon
44

záró osztály NetworkService { func request<Response: Decodable, Body: Encodable>(urlString: String, method: HTTPMethod, body: Body? = nil, headers: [String: String] = [:], query: [String: String] = [:]) async throws -> Response { guard var components = URLComponents(string: urlString) else { throw Errors.invalidUrl } if !query.isEmpty { components.queryItems = query.map { URLQueryItem(name: $0.key, value: $0.value) } } guard let url = components.url else { throw Errors.invalidQuery } var request = URLRequest(url: url) request.httpMethod = method.rawValue headers.forEach { request.setValue($0.value, forHTTPHeaderField: $0.key) } if let body, method == .post { request.httpBody = try encoder.encode(body) // ? } let (data, response) = try await session.data(for: request) guard let httpResponse = response as? HTTPURLResponse else { throw Errors.invalidResponse } guard (200...299).contains(httpResponse.statusCode) else { throw Errors.httpStatus(httpResponse.statusCode) } return try decoder.decode(Response.self, from: data) } }

Middle+
СБЕРСБЕР
43

Miért egy szótárt választottál cache tárolására?

Middle+
RevolutRevolut
43

Mennyire segítenek az MI-eszközök (Cursor, Proxyman stb.) abban, hogy hatékonyabb legyél a munkában?

Senior
Salmon
43

struct ExampleView: View { @State var isVariant1 = true var body: some View { VStack { Toggle("Változat 1 használata", isOn: $isVariant1.animation(.linear)) Text(isVariant1 ? "Változat 1" : "Változat 2") } .padding() } } Változat1 -> skála -> 1 -> 0 Változat2 -> skála -> 0

Senior
Salmon
43

Self -> Feladat -> (erős) Self .... Vissza -> View desinit -> View model deinit?

Senior
Salmon
42

Jelenleg használja a GCD-t vagy a Modern Concurrency-t (async/await) új feladatokhoz, amelyek szálakhoz kapcsolódnak?

Senior
Salmon
40

```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 } } } ```

Senior
Salmon
40

protokoll SomeProtocol { func test() } func test1_1(érték: SomeProtocol) {} func test1_2(érték: any SomeProtocol) {} func test2_1(érték: some SomeProtocol) {} func test2_2<Érték: SomeProtocol>(érték: Érték) {} class A { func test2_2<Érték: SomeProtocol>(érték: Érték) { } } class B: SomeProtocol { func test() {} } class C: B {} A().test2_2(érték: B())

Senior
Salmon
39

Mesélj részletesebben az utolsó projektedről — az Avito fénykép galéria moduljáról, amelyért te voltál felelős (rövid távú bérlés, foglalási űrlap stb.)

Senior
Salmon
39

```swift struct CustomButtonStyleView: View { var body: some View { VStack { Button("Button") { print("Tapped") } .buttonStyle(CustomButtonStyle()) } } } private struct CustomButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label .padding() .foregroundColor(.white) .background(Color.red) .clipShape(RoundedRectangle(cornerRadius: 8)) } } ``` ```swift struct CustomButtonStyleView: View { var body: some View { VStack { Button("Button") { print("Tapped") } .buttonStyle(CustomButtonStyle()) } } } private struct CustomButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label .padding() .foregroundColor(.white) .frame(maxWidth?) .background(Color.red) .clipShape(RoundedRectangle(cornerRadius: 8)) } } ``` ```

Senior
Salmon
39

Volt-e érdekes szekció vagy keretrendszer a legutóbbi WWDC-n, amit kipróbálnál a munkádban?

Senior
Salmon
38

Mikor és hogyan történik a törlés, amikor DispatchQueue-t használunk WorkItem-mel és meghívjuk a cancel()-t?

Senior
Salmon
37
/206