შეგიძლიათ ახსნათ, რა იგულისხმება MRC ტერმინში და რა არის მისი არსი?
sobes.tech AI
პასუხი AI-სგან
MRC (ხელით მიმაგრების გამოთვლა) — ეს მეხსიერების მართვის მექანიზმია, სადაც პროგრამისტი თავად არის პასუხისმგებელი ობიექტზე მიმაგრების რაოდენობის გამოთვლასა და მეხსიერების გათავისუფლებაზე, როდესაც ობიექტი აღარ არის საჭირო.
iOS და Objective-C-ში, ARC-ის (ავტომატური მიმაგრების გამოთვლა) გამოჩენამდე, დეველოპერები ხელით ზრდიდნენ და მცირედით ამცირებდნენ მიმაგრების რაოდენობას retain და release მეთოდების გამოყენებით. როდესაც ობიექტის მიმაგრების რაოდენობა მიაღწევს ნულს, მისი მეხსიერება გათავისუფლდება.
MRC-ის არსი:
- ყოველ ჯერზე, როდესაც შენახულობ ობიექტზე მიმაგრებას, იძახი
retain. - როდესაც მიმაგრება აღარ არის საჭირო, იძახი
release. - თუ მიმაგრების რაოდენობა ნულია, ობიექტი განადგურდება.
ეს საჭიროებს ყურადღებას, რათა თავიდან აიცილო მეხსიერების გაჟონვა (თუ დაგავიწყდა release-ის გამოძახება) ან უკვე გათავისუფლებული მეხსიერების წვდომის შეცდომები (თუ ძალიან ადრე გამოძახე release-ი).
მაგალითი:
NSObject *obj = [[NSObject alloc] init]; // რაოდენობა = 1
[obj retain]; // რაოდენობა = 2
[obj release]; // რაოდენობა = 1
[obj release]; // რაოდენობა = 0, ობიექტი განადგურდება
MRC-ის გამოყენება მოითხოვს მკაცრ კონტროლს ობიექტების სიცოცხლის ციკლზე, განსხვავებით ARC-ისგან, რომელიც ამას ავტომატურად ახორციელებს.