آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش زبان Objective-C

آموزش برنامه نویسی IOS – زبان Objective-C

Objective-C زبان توسعه و برنامه نویسی IOS است. این زبان شی گرا بوده و فراگیری آن برای کسانی که قبلا با یک زبان شی گرا برنامه نویسی کرده اند بسیار آسان می باشد.

فایل های Interface و Implementation

در Objective C، فایلی که کلاس در آن اعلان می شود (به عبارتی متغیرها، property ها و متدها و instance method ها در آن اعلان می شوند)، interface و فایلی که کلاس در آن تعریف می شود (فقط متدهای کلاس در آن مشخص می شوند)، implementation خوانده می شود.

در زیر ساختار کلی یک فایل interface ساده به نام MyClass.h را مشاهده می کنید:

@interface MyClass:NSObject{ 
   // class variable declared here (متغیرهای کلاس در این فایل تعریف می شوند) 
}
// class properties declared here (پراپرتی های کلاس در اینجا اعلان می شوند) 
// class methods and instance methods declared here (متدهای کلاس در اینجا تعریف می شوند) 
@end

ساختار کلی یک فایل implementation ساده به نام MyClass.m به صورت زیر می باشد:

@implementation MyClass
   // class methods defined here (متدهای کلاس در این فایل مشخص می شوند) 
@end

ایجاد آبجکت یا شی جدید از کلاس/ object creation

جهت ایجاد آبجکت یا نمونه از کلاس، کافی است به صورت زیر اقدام نمایید:

MyClass  *objectName = [[MyClass alloc]init] ;

نحوه ی تعریف متد

در Objective C متد به صورت زیر (با دستور نحوی و سینتکس زیر) تعریف می شود:

-(returnType)methodName:(typeName) variable1 :(typeName)variable2;

نمونه ی تعریف متد جدید:

-(void)calculateAreaForRectangleWithLength:(CGfloat)length 
andBreadth:(CGfloat)breadth;
-(void)method name:(typename float)vara1:(float)var2

ممکن است این سوال برای شما پیش آید که رشته ی andBreadth چیست و چه کاربردی دارد؟ آیتم مزبور در واقع یک رشته یا string اختیاری است که به ما در خواندن و فهم عملکرد متد، به ویژه در زمان فراخوانی و آن، کمک شایانی می کند. برای فراخوانی این متد در کلاس جاری، دستور زیر را بکار می بریم:

 [self calculateAreaForRectangleWithLength:30 andBreadth:20];

همان طور که در بالا ذکر شد، استفاده از andBreadth برای ما مشخص می کند که عرض یا breadth مستطیل برابر 20 است. کلیدواژه ی Self نیز به این اشاره دارد که متد مورد نظر، class method است (self به کلاس جاری اشاره دارد). ها Class method Class method ها متدهایی هستند که بدون نیاز به ایجاد شی از کلاس می توان به آن ها دسترسی داشت. این متدها هیچ object و متغیر مرتبطی ندارند. در زیر نمونه ای را مشاهده می کنید:

+(void)simpleClassMethod;

می توان با استفاده از اسم کلاس به متد دسترسی داشت. برای مثال اگر اسم کلاس MyClass باشد، آنگاه:

 [MyClass simpleClassMethod];

Instance method ها

Instance method ها توابعی هستند که برای دسترسی به آن می بایست یک شی از کلاس ساخته شود. (با ایجاد نمونه یا شی از کلاس) به هر متغیر نمونه یا instance variable ای که ایجاد می شود، مقداری از حافظه تخصیص می یابد. نمونه ای از instance method را در زیر مشاهده می کنید:

-(void)simpleInstanceMethod; 

پس از ایجاد شی از کلاس، می توان به این نوع متد دسترسی داشت:

MyClass  *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];

انواع داده ای یا data type های پرکاربرد و مهم در Objective C


Data Typeنوع داده ای/; S.N.
NSString بیانگر مقدار رشته ای یا string می باشد. 1
CGfloat بیانگر مقدار عددی ممیز شناور/floating point می باشد (می توان از float ساده نیز استفاده کرد، اما بهتر است از CGfloat استفاده نمایید). 2
NSInteger بیانگر مقدار عدد صحیح یا یا نوع داده ای integer می باشد. 3
BOOL بیانگر مقدار یا نوع داده ای بولی می باشد(YES/NO مقادیر بولی قابل قبول هستند). 4

دستور NSLog و چاپ لاگ

NSLog برای چاپ کردن یک متن یا نوشته در خروجی بکار می رود؛ به عبارتی دیگر به وسیله ی آن می توان اطلاعاتی را در خروجی چاپ کرد. در مد debug این اطلاعات در console debug و در مد release داخل device logs چاپ می شوند. برای مثال:

NSlog(@"");

دستورهای کنترل جریان اجرای برنامه/Control Structures

بیشتر ساختارهای کنترلی این زبان، از نظر سینتکس و ساختار نگارشی با دستورات موجود در C و C++ یکسان هستند، به جز تعدادی محدودی مانند for…in که به شرح آن ها خواهیم پرداخت.

Property ها در Objective C

برای اینکه کلاس خارجی بتواند به متغیر های کلاس دیگری دسترسی داشته باشد، از variable property ها استفاده می شود (می توان گفت که property های یک شی به دیگر اشیا یا آبجکت ها اجازه می دهد وضعیتش را تغییر دهد). برای مثال:

@property(nonatomic , strong) NSString *myString;

دسترسی به property ها

می توان با عملگر نقطه به (مقادیر) property ها دسترسی داشت. برای مثال جهت دسترسی به property فوق، کافی است دستور زیر را بنویسید:

self.myString = @"Test";

همچنین می توانید متد set را به صورت زیر بکار ببرید:

 [self setMyString:@"Test"];

Category ها

با استفاده از category ها می توان به کلاس جاری متد جدید اضافه کرد. از این طریق می توانیم حتی به کلاس هایی که سورس آن ها را نداریم، متد اضافه کنیم. در واقع category ها امکانات قدرتمندی هستند که به شما اجازه می دهند بدون ایجاد subclass، قابلیت های کلاس جاری را افزایش دهید. در زیر یک نمونه category برای کلاس خود تعریف کرده ایم:

@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod{
   NSLog(@"Just a test category");
}

آرایه ها/Arrays در Objactive-C

NSMutableArray و NSArray دو کلاس آرایه هستند که در Objective-C از آن ها استفاده می شود. همان طور که از اسم آن ها پیدا است، کلاس اول mutable (تغییر پذیر) و کلاس دوم immutable (تغییرناپذیر) می باشد (immutable: آبجکت immutable، آبجکتی است که پس از ایجاد نمی توان وضعیت آن را تغییر داد). در زیر نمونه ای را مشاهده ای می کنید:

NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];

Dictionary در Objective-C

کلاس های NSMutableDictionary و NSDictionary کلاس های dictionary هستند که در Objective-C استفاده می شود. همان طور که اسم آن ها پیدا است، اولین کلاس immutable یا به اصطلاح تغییرناپذیر است و دومین کلاس mutable یا تغییر پذیر است. مثال:



NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];
  • 3455
  •    6
  • تاریخ ارسال :   1395/07/09

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .