Memory Management & ARC
ARC, strong/weak/unowned, retain cycles, capture lists, memory leak, profiling
1Cos'è l'ARC (Automatic Reference Counting) in iOS?
Cos'è l'ARC (Automatic Reference Counting) in iOS?
Risposta
ARC è un meccanismo automatico di gestione della memoria che conta i riferimenti a un oggetto. Il compilatore inserisce automaticamente le chiamate retain e release, eliminando la gestione manuale. Quando il conteggio dei riferimenti raggiunge zero, l'oggetto viene deallocato. ARC semplifica notevolmente la programmazione iOS evitando i memory leak più comuni.
2Cos'è una strong reference in ARC?
Cos'è una strong reference in ARC?
Risposta
Una strong reference incrementa il contatore di riferimenti dell'oggetto puntato. Per impostazione predefinita, tutte le variabili sono strong reference. L'oggetto rimane in memoria finché almeno una strong reference punta ad esso. Usare troppe strong reference può creare retain cycles che impediscono la deallocazione.
3Cos'è un retain cycle (ciclo di ritenzione)?
Cos'è un retain cycle (ciclo di ritenzione)?
Risposta
Un retain cycle si verifica quando due o più oggetti mantengono strong reference reciproche. Nessuno può essere deallocato perché ciascuno impedisce che il contatore di riferimenti dell'altro raggiunga zero. Questo crea un memory leak. I retain cycles si evitano usando weak o unowned reference nelle relazioni circolari.
Qual è il ruolo di deinit nella gestione della memoria ARC?
Qual è la differenza tra una weak e una unowned reference?
+19 domande da colloquio
Altri argomenti di colloquio iOS
Fondamenti di Swift
Fondamenti del linguaggio Swift
Fondamenti di UIKit
Ciclo di vita di UIViewController
UserDefaults & Keychain
Ciclo di vita dell'applicazione
Auto Layout & Constraints
UITableView & UICollectionView
Fondamenti di SwiftUI
Gestione dello stato in SwiftUI
Navigazione SwiftUI
Networking & URLSession
Codable e parsing JSON
Core Data
Programmazione orientata ai protocolli
Architettura MVVM
Notifiche Push
Test unitari & XCTest
Test dell'interfaccia utente
Xcode e sistema di build
Swift Package Manager
Combine Framework
Concurrency & async/await
iOS Design Patterns
Ottimizzazione delle prestazioni
Sicurezza e crittografia
SwiftUI Advanced
Architettura delle applicazioni iOS
Padroneggia iOS per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis