گروه مقاله : ios
تاريخ انتشار : 1396/05/03 - 15:06
كد :7734
Structures ها و کلاس ها ساختاری منعطف برای ایجاد یک بلاک در کدهای شما هستند. شما میتوانید با تعریف صفات و متد ها به کلاس ها و Structure های خود امکان انجام کارهای بیشتری را بدهید .
برخلاف سایر نرم افزار ها سویفت برای ایجاد یک کلاس سفارشی نیازی به ایجاد یک فایل جداگانه ندارد. در سویفت ، شما یک کلاس یا structure را در یک فایل ایجاد کرده و این کلاس ها و Structure ها برای بقیه کدها در دسترس هستند.
نکته:
یک ثابت در یک کلاس به عنوان شیئ یا همان object شناخته میشود.
کلاس ها و Structure ها در سویفت ساختار بسیار شبیه به هم دارد .
مقایسه کلاس و Structures ها در سویفت:
هر دوی کلاس ها و structures ها در سوفیت میتوانند کارهای زیر را انجام دهند:
- تعریف یک صفت یا ویژگی برای ذخیره مقدار
- تعریف متدها برای ارائه قابلیت ها
- تعریف زیرمجموعه ها برای دسترسی به مقادیر آنها با استفاده از قواعد زیرمجموعه
- تعریف آغازگرها برای تنظیم وضعیت اولیه آنها
- قابلیت گسترش و افزایش توان کارایی، فراتر از توان تعریف شده اولیه
- قابلیت مطابقت با پروتکل ها برای استاندارد برای انواع خاص
کلاس ها امکانات خاصی دارند که در Structures ها نیست:
- امکان ارثبری ویژگی ها را از یک کلاس دیگر را دارد.
- امکان تعریف نوع کلاس در زمان شروع برنامه
- شروع کننده ها یک ثابت را فعال می کنند که میتواند هر نوع منبعی را در کلاس فراخوانی کند
- Reference counting ها اجازه ارائه بیش از یک منبع را برای کلاس ها به شما میدهند.
نکته
Structure ها به شما اجازه کپی پیست شدن در کد را میدهند و از reference counting استفاده نمی کنند.
تعریف متغییر
نحوه تعریف structure شبیه کلاس میباشد . ابتدا واژه structure را نوشته و نام متغیر و یک جفت براکت کدهای Structure را نگه میدارد.
struct SomeStructure { // structure definition goes here }
نکته
هنگامیکه شما یک کلاس یا یک structure تعریف می کنید باید از شیوه CamelCase استفاده کنید. مثال بالا را نگاه کنید SomeStructure بصورت CamelCase نوشته شده است.
در زیر یک مثال دیگر از تعریف structure را مشاهده می کنید ،که با ساختار کلاس مقایسه شده است.
struct Resolution { var width = 0 var height = 0 } class VideoMode { var resolution = Resolution() var interlaced = false var frameRate = 0.0 var name: String?
}
این مثال در آموزش نحوه تعریف کلاس در سویفت توضیح داده شده است، ما تنها به آموزش قبلی تعریف Resolution را اضافه کرده ایم. متغییر Resolution دو ویژگی width و height دارد . در این مثال ما این دو عدد را در یک کلاس بکار برده ایم.
تعریف یک ثابت برای متغییر structure بصورت زیر انجام میشود:
let someResolution = Resolution()
همانطور که میبینید این متغییر شبیه به کلاس تعریف میشود.
دسترسی به مقدار یک Structure
درست مانند کلاس ها دسترسی به مقدار structure از ساختار "." استفاده می کند. به مثال زیر نگاه کنید:
print("The width of someResolution is \(someResolution.width)") // Prints "The width of someResolution is 0"
برای درج یک مقدار در structure نیز با همان دات (.) انجام میشود:
someVideoMode.resolution.width = 1280 print("The width of someVideoMode is now \(someVideoMode.resolution.width)") // Prints "The width of someVideoMode is now 1280"
نکته
برخلاف objective-c سویفت به شما اجازه میدهد که از sub-properties ها بصورت مستقیم استفاده کنید. درست مانند مثال بالا که از مقدار width در resolution استفاده کرده ایم.
در مقاله های بعد به عضویت آغازگرها در انواع Structure ها می پردازیم.
براي بهره مندي از مشاوره تخصصي در زمینه برنامه نویسی ios با شرکت سارگون تماس بگيريد