Σε ποια σειρά εκτελούνται οι κατασκευαστές και οι αρχικοποιητές κατά τη δημιουργία ενός στιγμιότυπου κλάσης;
iOS
Μπορείτε να εξηγήσετε τι εννοείται με την ασυγχρονία στην εκτέλεση του προγραμματικού κώδικα;
Πόσες φορές στο κύκλο ζωής του UIViewController καλείται η μέθοδος loadView;
Πείτε μας για την εμπειρία σας σε εμπορικά έργα
Πώς διακρίνετε τη χρήση του unowned χωρίς παραμέτρους από το unowned(unsafe) στον κώδικα;
Μπορείτε να εξηγήσετε τι είναι η κλάση CALayer και πώς χρησιμοποιείται στην ανάπτυξη iOS;
Ποιο ήταν το μέγεθος της ομάδας στην οποία εργάστηκες στην προηγούμενη θέση σου;
Ποια είναι η διαφορά μεταξύ ενός κανονικού ρεύματος εκτέλεσης και του κύριου νήματος σε ένα πρόγραμμα;
Πώς είναι οργανωμένη η δομή μνήμης για την αποθήκευση δεδομένων στο πρόγραμμα;
Μπορείτε να εξηγήσετε τις διαφορές μεταξύ UIView, UIWindow και CALayer στην ανάπτυξη διεπαφών iOS;
Εξηγήστε την έννοια της αυτόματης τοποθέτησης στοιχείων διεπαφής στο πλαίσιο της ανάπτυξης διεπαφών χρήστη.
Μπορείτε να εξηγήσετε τις διαφορές μεταξύ των λειτουργιών flatMap και compactMap στις γλώσσες προγραμματισμού;
Περιγράψτε τις προσεγγίσεις και πρακτικές σας κατά τη χρήση του συστήματος ελέγχου εκδόσεων Git στις εργασιακές διαδικασίες.
Μπορείτε να μοιραστείτε την επαγγελματική σας εμπειρία και τα βασικά επιτεύγματά σας;
Μπορείτε να περιγράψετε την αρχιτεκτονική των έργων στα οποία εργαστήκατε προηγουμένως;
Μπορείς να δώσεις ένα παράδειγμα χρήσης δυναμικής κατανομής μνήμης για την αποθήκευση μιας δομής δεδομένων;
Μπορείς να δώσεις ένα παράδειγμα κατάστασης όπου καλείται το viewDidAppear, παρακάμπτοντας το viewWillAppear;
Μπορείτε να ορίσετε αρχικές τιμές για τα πεδία μιας δομής κατά την δήλωσή της;
τελική κλάση 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) } }