Junior — Middle
თუ ობიექტს სამსუსტი (weak) და ერთ არასავალდებულო (unowned) მიმთითვლები მიუთითებს, ავტომატურად წაიშლება ის მეხსიერებიდან?
sobes.tech AI
პასუხი AI-სგან
ობიექტი ავტომატურად წაიშლება მეხსიერებიდან, თუ მასზე აღარ დარჩა ძლიერი (strong) მიმაგრებები. სუსტი (weak) და არასავალდებულო (unowned) მიმაგრებები არ ზრდიან ობიექტის მიმაგრების რაოდენობას. თქვენს შემთხვევაში, თუ მხოლოდ სამი weak და ერთი unowned მიმაგრება არსებობს, მაგრამ არცერთი strong არ არის, ობიექტი ითვლება არასარგებლობად და განადგურდება.
მაგალითი:
class MyClass {}
var strongRef: MyClass? = MyClass() // ძლიერი მიმაგრება
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!
strongRef = nil // ახლა ძლიერი მიმაგრებები აღარ არის, ობიექტი წაიშლება