با عرض سلام خدمت کاربران سایت پی وی لرن ، و کاربرانی که آموزش دوره iOS را دنبال می کنند، اگر به خاطر داشته باشید جلسه قبل در مورد تنظیمات xcode صحبت شد،این جلسه برنامه نویسی شیء گرایی C در iOS به شما عزیزان آموزش داده می شود.زبان مورد استفاده در توسعه iOS برنامه نویسی شیء گرایی C است. این یک زبان شی گرا است و از این رو برای افرادی که قبلا با زبان خاصی در زبان برنامه نویسی شی گرا آشنا می باشند، آسان خواهد بود.
در برنامه نویسی شیء گرایی C که برای توسعه iOS می باشد، فایلی که در آن اعلام کلاس انجام می شود، فایل رابط است.
همچنین،فایلی که در آن کلاس تعریف شده است، فایل پیاده سازی نامیده می شود.
MyClass.h یک فایل رابط کاربری ساده مانند زیر است :
1 2 3 4 5 6 7 | @interface MyClass:NSObject { // class variable declared here } // class properties declared here // class methods and instance methods declared here @end |
فایل پیاده سازی MyClass.m به شرح زیر است:
1 2 3 | @implementation MyClass // class methods defined here @end |
ایجاد شی به صورت زیر انجام می شود :
1 | MyClass *objectName = [[MyClass alloc]init] ; |
متدها در برنامه نویسی شی گرایی به شرح زیر اعلام شده می شوند:
1 | -(returnType)methodName:(typeName) variable1 :(typeName)variable2; |
همانطور که در مثال زیر نشان داده شده است.
1 2 | -(void)calculateAreaForRectangleWithLength:(CGfloat)length andBreadth:(CGfloat)breadth; |
شما ممکن است تعجب کنید که رشته andBreadth برای چه چیزی است.
در واقع یک رشته اختیاری است که به ما کمک می کند تا به آسانی خواندن و درک متد را، به ویژه در زمان فراخوانی انجام دهیم.برای فراخوانی این روش در همان کلاس، از عبارت زیر استفاده می کنیم :
1 | [self calculateAreaForRectangleWithLength:30 andBreadth:20]; |
همانطور که در بالا ذکر شد، استفاده از andBreadth به ما کمک می کند که مقدار عرض را بفهمیم که در این مثال ۲۰ شده است، این یک رمتد کلاس است.
متدهای کلاس می تواند به طور مستقیم بدون ایجاد اشیاء برای کلاس قابل دسترسی باشد. آنها هیچ متغیری و اشیاء مرتبط با آن ندارند.به مثال زیر توجه کنید:
1 | +(void)simpleClassMethod; |
می توان با استفاده از نام کلاس به آن دسترسی داشته باشیم(فرض کنید نام کلاس هست MyClass) مثال :
1 | [MyClass simpleClassMethod]; |
متد نمونه را می توان تنها پس از ایجاد یک شی برای کلاس مشاهده کرد. حافظه به متغیرهای نمونه اختصاص داده می شود.
یک متد نمونه در مثال زیر نشان داده شده است :
1 | -(void)simpleInstanceMethod; |
که می تواند پس از ایجاد یک شی برای کلاس به صورت زیر قابل دسترسی باشد :
1 2 | MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod]; |
انواع داده های مهم در برنامه نویسی شیء گرایی C در iOS در جدول زیر آمده است:
نوع داده در شیء گرایی C در iOS | شماره |
NSString برای نمایش یک رشته استفاده می شود. | ۱ |
CGfloat برای نشان دادن یک مقدار اعشاری (اعداد اعشاری طبیعی نیز مجاز است اما بهتر است از CGfloat استفاده شود) استفاده می شود. | ۲ |
NSInteger برای نمایش عدد صحیح استفاده می شود. | ۳ |
bool برای نمایش بولی استفاده می شود (YES یا NO انواع BOOL مجاز است). | ۴ |
NSLog : برای چاپ یک بیانیه استفاده می شود. این به ترتیب در حالتهای انتشار و اشکال زدایی در کنسول های دستگاه و کنسول اشکال زدایی چاپ می شود.
برای مثال:
1 | NSlog(@""); |
اکثر ساختارهای کنترل همانند C و C ++ هستند، به غیر از چند افزونه ای که در بیانیه آمده است.
برای کلاس خارجی برای دسترسی به کلاس، خواص متغیر استفاده می شود.
بعنوان مثال:
1 | @property(nonatomic , strong) NSString *myString; |
شما می توانید از اپراتور نقطه برای دسترسی به خواص استفاده کنید. برای دسترسی به خواص فوق، ما مثال زیر را انجام خواهیم داد.
1 | self.myString = @"Test"; |
همچنین شما می توانید از روش متد به صورت زیر استفاده کنید :
1 | [self setMyString:@"Test"]; |
دسته ها برای افزودن روش ها به کلاس های موجود استفاده می شوند. به این ترتیب، ما می توانیم متد را به کلاس اضافه کنیم که ما حتی فایل هایی را اجرا نمی کنیم که در آن کلاس واقعی تعریف شده باشد. یک دسته بندی بعنوان نمونه برای کلاس به شرح زیر است :
1 2 3 4 5 6 7 8 9 | @interface MyClass(customAdditions) - (void)sampleCategoryMethod; @end @implementation MyClass(categoryAdditions) -(void)sampleCategoryMethod { NSLog(@"Just a test category"); } |
NSMutableArray و NSArray کلاس های آرایه ای هستند که در برنامه نویسی شیء گرایی C در iOS مورد استفاده قرار می گیرند. اولی قابل تغییر است و دومی تغییرناپذیر است.در مثال زیر نشان داده شده است:
1 2 3 4 | NSMutableArray *aMutableArray = [[NSMutableArray alloc]init]; [anArray addObject:@"firstobject"]; NSArray *aImmutableArray = [[NSArray alloc] initWithObjects:@"firstObject",nil]; |
NSMutableDictionary و NSDictionary کلاس های فرهنگ لغت مورد استفاده در هدف C. به عنوان نام نشان می دهد، سابق قابل تغییر است و دوم غیر قابل تغییر است.
به مثال زیر توجه کنید:
1 2 3 4 | NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init]; [aMutableDictionary setObject:@"firstobject" forKey:@"aKey"]; NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects: @"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]]; |
در این جلسه پایه برنامه نویسی شیء گرایی C در iOS که یک زبان برای توسعه iOS می باشد را در یافتیم و با تعدادی از داده ها و کلاس ها و قابلیت های این زبان آشنا شدیم.با ما همراه باشید تا در جلسه بعد اولین برنامه آیفون در iOS را آموزش ببینید.