iOS
վերջնական դաս ProfileViewModel1 { enum Կարգավիճակ { ... } var կարգավիճակ: Կարգավիճակ = .idle let ծառայություն: UserService init(ծառայություն: UserService) { ... } func onBackPress() { // տեսք deinit } func loadUser() { կարգավիճակ = .loading Task { [weak self] guard let self else { return } do { let օգտվող = try await self.ծառայություն.fetchUser() self.կարգավիճակ = .loaded(օգտվող) } catch { self.կարգավիճակ = .failed(error.localizedDescription) } } } }
struct ExampleView: View { var body: some View { VStack { FormView() Button("Reset") { // TODO: } } } } // ՄԻԱՅՆ ԿԻՐԱՍԱՐԿՈՒՄ 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) } } }
Ինչպես է աշխատում դիզայնի համակարգը UIKit և SwiftUI միջև՝ կա՞ կրկնօրինակում կոմպոնենտների կամ պատյանների։
Ինչու որոշ հարցումներ վերադարձնում են գին, որը երբեք չի եղել (օրինակ՝ միջնակարգ արժեքը հին և նոր գների միջև)?
պրոտոկոլ SomeProtocol {} ֆունկցիա test1_1(արժեք: SomeProtocol) {} ֆունկցիա test1_2(համայն SomeProtocol) {} ֆունկցիա test2_1(արժեք: some SomeProtocol) {} ֆունկցիա test2_2<Արժեք: SomeProtocol>(արժեք: Արժեք) {} դաս A { ֆունկցիա test2_2<Արժեք: SomeProtocol>(արժեք: Արժեք) { } } դաս B: SomeProtocol { } A().test2_2(արժեք: B())
պրոտոկոլ SomeProtocol {} func test1_1արժեքը: SomeProtocol) {} func test1_2(արժեքը: any SomeProtocol) {}
Եթե դուք նախագծում եք վերօգտագործվող կոճակի կոմպոնենտ SwiftUI-ում տարբեր ոճերով (առաջնային/երկրորդական), ինչպես կկատարեք դա?
Երբ դու եկար նախագծին, արդյոք արդեն կար Swift 6, թե անցումը տեղի ունեցավ քո ներկայությամբ?
Նկարագրեք բառերով, ինչպես կլուծեք մեքենայի գնի կեշավորման խնդիրը՝ տվյալների կառուցվածք, սինխրոնիզացիա, թարմացում։
Խոսիր զարգացման համար հետաքրքիր ռեսուրսների մասին — YouTube ալիքներ, Telegram ալիքներ, համայնքներ, գործիքներ
Ինչպես են հաղորդակցվում View և ViewModel-ը UIKit-ում — օգտագործվում է ինչ-որ բան, ինչպես RxSwift/Combine բինդինգների համար?
Ինչու ավելացնել mutex միայն գրելու համար չի լուծում data race խնդիրը: Ինչպես ճիշտ օգտագործել mutex՝ ընդհանուր փոփոխականի պաշտպանության համար:
Պետք է գրել պարզ հիշողության կեշ գրադարան: type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
SomeProtocol պրոտոկոլ {} ֆունկցիա test1_1 արժեքը: SomeProtocol {} ֆունկցիա test2_1 արժեքը: some SomeProtocol {} ֆունկցիա test1_2 արժեքը: any 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) }
Կարճ ներկայացրեք ինքներդ և նկարագրեք ձեր ներկայիս աշխատանքը.
թույլ տվեք, որ ծնողը լինի Task { let child = Task { print("երեխան սկսվեց, isCancelled = ", Task.isCancelled) // for index in (1...[phone]) { print(index) } print("երեխան ավարտվեց, isCancelled = ", Task.isCancelled) // } await child.value } try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 վայրկյան parent.cancel()
Array { value1 value2 if condition { value3 } }
@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("Ներբեռնումը ձախողվեց. Սկզբնապես սխալը՝ \(error)") } } } Button("Ներբեռնել") { onDownloadPhoto(url) }
Ինչպես իրականացվեց շոշափումների և զույգի փոխազդեցությունը լուսանկարների գալերեայում — UIKit կամ SwiftUI?