Junior — Middle
კლასის განთავსება დინამიური მეხსიერების ზონაში (ჰიპი) რა მნიშვნელობა აქვს და რატომ კეთდება ეს?
sobes.tech AI
პასუხი AI-სგან
დინამიკურმა მეხსიერების ზონაში (heap) კლასის განთავსება ნიშნავს, რომ ამ კლასის ინстанციები შექმნილია და ინახება heap-ში, არა stack-ში. iOS-ში (და ზოგადად ობიექტზე ორიენტირებულ ენებში) კლასის ობიექტები ჩვეულებრივ განაწილებულია heap-ში, რათა უზრუნველყოს ობიექტების სიცოცხლის დროის დინამიური მართვა.
ეს კეთდება იმისთვის:
- ობიექტები დამოუკიდებლად არსებობდნენ იმ ფუნქციის ფარგლებიდან, სადაც შექმნილია.
- მართოს ობიექტის სიცოცხლის დრო ხელით ან ავტომატურად, ARC-ის (iOS-ში).
- შექმნას ობიექტები ნებისმიერი ზომისა და სირთულის.
Swift-ის მაგალითი:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
func createPerson() {
let person = Person(name: "Иван") // ობიექტი შექმნილია heap-ში
print(person.name)
}
აქ, Person ობიექტი შექმნილია heap-ში, და person ცვლადი არის ამ ობიექტის მიმთითებელი. როდესაც ცვლადი გამოდის სკოპიდან, ობიექტი შეიძლება წაიშალოს, თუ სხვა მიმთითებლები არ არსებობს.