Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რა იგულისხმება 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-ისგან, რომელიც ამას ავტომატურად ახორციელებს.