ใน Swift 4.0 ขณะนี้สามารถเข้าถึงส่วนขยายได้แบบส่วนตัว แต่อยู่ในไฟล์เดียวกัน หากคุณประกาศ / กำหนดนามสกุลในไฟล์อื่น ๆ แล้วตัวแปรส่วนตัวของคุณจะไม่สามารถเข้าถึงได้ในส่วนขยายของคุณ **
การเข้าถึงไฟล์ส่วนตัว
- ไฟล์ จำกัด การใช้งานของเอนทิตีเพื่อกำหนดแหล่งไฟล์ของตัวเอง ใช้การเข้าถึงแบบเป็นส่วนตัวของไฟล์เพื่อซ่อนรายละเอียดการใช้งานของส่วนการใช้งานเฉพาะเมื่อใช้รายละเอียดเหล่านั้นภายในไฟล์ทั้งหมด
ไวยากรณ์: fileprivate <var type> <variable name>
ตัวอย่าง: fileprivate class SomeFilePrivateClass {}
เอกชน
เข้าถึงเอกชน จำกัด การใช้ของกิจการที่จะประกาศการปิดล้อมและเพื่อขยายว่าประกาศที่อยู่ในไฟล์เดียวกัน ใช้การเข้าถึงแบบส่วนตัวเพื่อซ่อนรายละเอียดการใช้งานของส่วนการทำงานเฉพาะเมื่อใช้รายละเอียดเหล่านั้นภายในการประกาศเพียงครั้งเดียว
ไวยากรณ์: private <var type> <variable name>
ตัวอย่าง: private class SomePrivateClass {}
นี่คือรายละเอียดเพิ่มเติมเกี่ยวกับทุกระดับการเข้าถึง: Swift - Access Level
ดูที่ภาพนี้:
ไฟล์: ViewController.swift ที่
นี่ส่วนขยายและตัวควบคุมมุมมองทั้งสองอยู่ในไฟล์เดียวกันดังนั้นตัวแปรส่วนตัวจึงtestPrivateAccessLevelสามารถเข้าถึงได้ในส่วนขยาย

ไฟล์: TestFile.swift ที่
นี่ส่วนขยายและตัวควบคุมมุมมองทั้งสองอยู่ในไฟล์ที่แตกต่างกันดังนั้นตัวแปรส่วนตัวจึงtestPrivateAccessLevelไม่สามารถเข้าถึงได้ในส่วนขยาย


นี่คลาสViewController2เป็นคลาสย่อยของViewControllerและทั้งคู่อยู่ในไฟล์เดียวกัน ตัวแปรส่วนตัวที่นี่testPrivateAccessLevelไม่สามารถเข้าถึงได้ในคลาสย่อย แต่ fileprivate นั้นสามารถเข้าถึงได้ในคลาสย่อย

privatefileprivateอย่างไรก็ตามหากคุณมีความหรูหราในการทำด้วยมือคุณมักจะได้รับประโยชน์จากการออกจากprivateที่private... ถ้ามันรวบรวมทั้งหมดที่ดี