როგორ ხორციელდება ავტომატური და ხელით მუშაობა მეხსიერებაზე iOS-ში, და რა მექანიზმები გამოიყენება რესურსების მართვისთვის?
sobes.tech AI
პასუხი AI-სგან
iOS-да хәтерне идарә итү төп ике ысул белән тормышка ашырыла: автоматик һәм кул белән.
-
Автоматик хәтер идарәсе (ARC — Автоматик сылтамалар санагы)
ARC — бу компиляторга урнаштырылган механизм, ул Objective-C һәм Swift объектлары өчен retain/release чакыруларын автомат рәвештә өсти. Ул объектка булган сылтамалар санын исәпли һәм санчы нульгә җиткәч, хәтерне бушата.
Мисал:
class Person { var name: String init(name: String) { self.name = name } } var p1: Person? = Person(name: "Иван") var p2 = p1 // сылтамалар саны арта p1 = nil // сан кими p2 = nil // объект бушатыла -
Кул белән хәтер идарәсе
Иске iOS версияләрендә (ARC-тан элек), программист кул белән
retain,releaseһәмautoreleaseысулларын чакырды, объектларның тормыш циклын идарә итү өчен. -
Ресурсларны идарә итү
Моннан тыш, ресурсларны (файллар, челтәр тоташулары, таймерлар) идарә итү өчен
deinitкебек Swiftта конструкцияләр киң кулланыла һәм объект юкка чыкканда ресурслар бушатыла.
Шулай ук, вакытлыча объектларны идарә итү өчен autoreleasepool кебек төзелмәләр киң кулланыла.
Шулай итеп, ARC хәтер белән эшләүне сизелерлек җиңеләйтә, агып китү мөмкинлеген киметә, һәм кул белән идарә итү сирәк кулланыла һәм бары тик махсус очракларда гына кулланыла.