ใน 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 นั้นสามารถเข้าถึงได้ในคลาสย่อย
private
fileprivate
อย่างไรก็ตามหากคุณมีความหรูหราในการทำด้วยมือคุณมักจะได้รับประโยชน์จากการออกจากprivate
ที่private
... ถ้ามันรวบรวมทั้งหมดที่ดี