Sobes.tech
Middle

Шумо дар бораи рӯйхати гирифтани дар Swift чӣ медонед?

sobes.tech AI

Ҷавоб аз AI

در Swift، فهرست گرفتن در بسته‌ها (closures) برای مدیریت گرفتن متغیرها از زمینه اطراف استفاده می‌شود، به‌ویژه برای جلوگیری از حلقه‌های مرجع قوی (retain cycles).

فهرست گرفتن در براکت‌های مربعی قبل از بدنه بسته نوشته می‌شود و اجازه می‌دهد مشخص کنید که چگونه متغیرها گرفته شوند — با ارجاع قوی (strong)، ضعیف (weak) یا بدون مالک (unowned).

مثال:

class ViewController {
    var name = "Swift"
    lazy var closure: () -> Void = { [weak self] in
        guard let self = self else { return }
        print(self.name)
    }
}

در اینجا، [weak self] از نگهداری ارجاع قوی به self در داخل بسته جلوگیری می‌کند، که به جلوگیری از نشت حافظه کمک می‌کند.

بنابراین، فهرست گرفتن ابزاری برای کنترل چرخه عمر اشیاء است که توسط بسته گرفته می‌شوند.