এর মতো সুইফট 3.0.1 , আছে এক্সেস 4 মাত্রা সর্বনিম্ন (অধিকাংশ নিয়ন্ত্রণমূলক) এর সর্বোচ্চ (অন্তত নিয়ন্ত্রণমূলক) থেকে নীচে বর্ণিত।
1. open
এবংpublic
সংজ্ঞায়িত মডিউল (লক্ষ্য) এর বাইরে ব্যবহারের জন্য কোনও সত্তাকে সক্ষম করুন। কোনও ফ্রেমওয়ার্কে পাবলিক ইন্টারফেস নির্দিষ্ট করার সময় আপনি সাধারণত ব্যবহার open
বা public
অ্যাক্সেস করেন।
তবে open
অ্যাক্সেস কেবলমাত্র ক্লাস এবং শ্রেণীর সদস্যদের জন্য প্রযোজ্য এবং এটি public
অ্যাক্সেস থেকে নীচে পৃথক :
public
ক্লাস এবং ক্লাসের সদস্যরা কেবল সংজ্ঞায়িত মডিউল (লক্ষ্য) এর মধ্যে সাবক্ল্যাসড এবং ওভাররাইড করা যায়।
open
ক্লাস এবং ক্লাসের সদস্যরা সংজ্ঞায়িত মডিউল (লক্ষ্য) এর বাইরে এবং বাইরে উভয়কে সাবক্ল্যাসড এবং ওভাররাইড করা যায়।
// First.framework – A.swift
open class A {}
// First.framework – B.swift
public class B: A {} // ok
// Second.framework – C.swift
import First
internal class C: A {} // ok
// Second.framework – D.swift
import First
internal class D: B {} // error: B cannot be subclassed
2। internal
সংজ্ঞায়িত মডিউল (লক্ষ্য) এর মধ্যে ব্যবহার করতে কোনও সত্তাকে সক্ষম করে। internal
কোনও অ্যাপ্লিকেশন বা ফ্রেমওয়ার্কের অভ্যন্তরীণ কাঠামো সংজ্ঞায়িত করার সময় আপনি সাধারণত অ্যাক্সেস ব্যবহার করেন ।
// First.framework – A.swift
internal struct A {}
// First.framework – B.swift
A() // ok
// Second.framework – C.swift
import First
A() // error: A is unavailable
3। fileprivate
সত্তার ব্যবহারটিকে তার সংজ্ঞায়িত উত্স ফাইলটিতে সীমাবদ্ধ করে। আপনি fileprivate
যখন পুরো ফাইলের মধ্যে এই বিবরণগুলি ব্যবহার করেন তখন সাধারণত কার্যকারিতার একটি নির্দিষ্ট অংশের প্রয়োগের বিশদটি গোপন করতে অ্যাক্সেস ব্যবহার করেন ।
// First.framework – A.swift
internal struct A {
fileprivate static let x: Int
}
A.x // ok
// First.framework – B.swift
A.x // error: x is not available
4। private
কোনও সত্তার ব্যবহারকে এর ঘেরিতকরণের ঘোষণার মধ্যে সীমাবদ্ধ করে। আপনি private
কেবলমাত্র কোনও একক ঘোষণার মধ্যে যখন নির্দিষ্ট বিবরণ ব্যবহার করা হয় তখন কার্যকারিতার নির্দিষ্ট অংশের প্রয়োগের বিশদটি গোপন করতে আপনি অ্যাক্সেস ব্যবহার করেন ।
// First.framework – A.swift
internal struct A {
private static let x: Int
internal static func doSomethingWithX() {
x // ok
}
}
A.x // error: x is unavailable