آموزش objective C در بزنامه نویسی iOS
آموزش objective C در بزنامه نویسی iOS
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش objective C در بزنامه نویسی iOS خواهیم پرداخت.
زبان مورد استفاده در توسعه objective C ،IOS است. این یک زبان شی گرا است و از این رو برای کسانی که سابقه زبانهای برنامه نویسی شی گرا را دارند، آسان خواهد بود.
رابط و پیاده سازی
در Objective C، فایلی که اعلان کلاس در آن انجام می شود، فایل رابط و به فایلی که کلاس در آن تعریف شده است، فایل پیاده سازی نامیده می شود.
یک فایل رابط کاربری ساده 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 |
ایجاد اشیا در بزنامه نویسی iOS
ایجاد اشیا به شرح زیر انجام می شود –
1 |
MyClass *objectName = [[MyClass alloc]init] ; |
متدها در objective C
متدها در objective C به شرح زیر اعلان می شود –
1 |
-(returnType)methodName:(typeName) variable1 :(typeName)variable2; |
یک مثال در زیر نشان داده شده است.
1 2 |
-(void)calculateAreaForRectangleWithLength:(CGfloat)length andBreadth:(CGfloat)breadth; |
ممکن است از خود بپرسید که رشته andBreadth برای چیست؟ در واقع این یک رشته اختیاری است که به ما کمک می کند روش را بخصوص در زمان فراخوانی، بخوانیم و درک کنیم. برای فراخوانی این روش در همان کلاس، از عبارت زیر استفاده می کنیم –
1 |
[self countAAaaForRectangleWithLength: 30 andBreadth: 20]؛ |
همانطور که در بالا گفته شد، استفاده از andBreadth به ما کمک می کند تا درک کنیم که عرض 20 است. Self برای تعیین اینکه این یک روش کلاس است استفاده می شود.
متد های کلاس
بدون ایجاد اشیا برای کلاس، می توان مستقیماً به متدهای کلاس دسترسی داشت. آنها هیچ متغیر و شی مرتبط با آن ندارند. یک مثال در زیر نشان داده شده است.
1 |
+(void)simpleClassMethod; |
با استفاده از نام کلاس (اجازه دهید نام کلاس را MyClass فرض کنیم) به صورت زیر قابل دسترسی است –
1 |
[MyClass simpleClassMethod]؛ |
متدهای نمونه
فقط پس از ایجاد یک شی برای کلاس می توان به متدهای نمونه دسترسی داشت. حافظه به متغیرهای نمونه اختصاص می یابد. یک مثال به عنوان مثال در زیر نشان داده شده است.
1 |
-(void)simpleInstanceMethod; |
پس از ایجاد یک شی برای کلاس به شرح زیر می توان به آن دسترسی داشت –
1 2 |
MyClass *objectName = [[MyClass alloc]init] ; [objectName simpleInstanceMethod]; |
انواع داده های مهم در objective C
نوع داده | |
---|---|
1 |
NSString این برای نشان دادن یک رشته استفاده می شود. |
2 |
CGfloat برای نمایش مقدار ممیز شناور استفاده می شود (شناور معمولی نیز مجاز است اما بهتر است از CGfloat استفاده شود). |
3 |
NSInteger برای نمایش عدد صحیح استفاده می شود. |
4 |
BOOL این برای نشان دادن Boolean استفاده می شود. |
چاپ Logs
NSLog – برای چاپ دستور استفاده می شود. به ترتیب در Log های مربوط به دستگاه و کنسول اشکال زدایی در حالت های انتشار و اشکال زدایی چاپ می شود. مثلا،
1 |
NSlog(@""); |
ساختارهای کنترلی
بیشتر ساختارهای کنترل مانند C و C ++ هستند، به غیر از موارد اضافی مانند دستور.
ویژگی ها در objective C
برای دسترسی یک کلاس خارجی به کلاس، از ویژگی های متغیر استفاده می شود. مثلا،
1 |
@property(nonatomic , strong) NSString *myString; |
دسترسی ویژگی ها در objective C
برای دسترسی به ویژگی ها در objective C می توانید از عملگر نقطه استفاده کنید. برای دسترسی به ویژگی فوق ، موارد زیر را انجام خواهیم داد.
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 کلاسهای آرایه ای هستند که در objective C استفاده می شوند. همانطور که از نامش پیداست، اولی قابل تغییر است و دومی غیر قابل تغییر است. یک مثال در زیر نشان داده شده است.
1 2 3 4 |
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init]; [anArray addObject:@"firstobject"]; NSArray *aImmutableArray = [[NSArray alloc] initWithObjects:@"firstObject",nil]; |
دیکشنری
NSMutableDictionary و NSDictionary کلاسهای دیکشنری مورد استفاده در objective 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"]]; |
دیدگاه شما