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

آموزش Delegate در IOS

آموزش delegate در IOSمثالی از Delegate و تشریح آن

فرض کنید آبجکت (object) A، آبجکت B را برای انجام عملیات خاصی صدا می زند. آبجکت A باید از B خبر داشته و بداند که این آبجکت فعل مورد نظر (وظیفه ی محول شده) را انجام داده و سپس (با اطمینان از انجام عملیات مورد نظر توسط B) خود اقدامات و عملیات لازم را انجام دهد. برای نیل به این هدف از delegate ها استفاده می کنیم.

آموزش delegate در IOSنکته

مفاهیم مهم در مثال بالا

1. A یک delegate object از B می باشد.

2. B یک reference یا اشاره گر از A دارد.

3. A متدهای delegate آبجکت B را پیاده سازی می کند.

4. B آبجکت A را از طریق متدهای delegate مطلع می سازد.

مراحل ایجاد یک Delegate

1. ابتدا یک اپلیکیشن single view ایجاد کنید.

2. سپس مسیر زیر را طی نمایید:

File -> New -> File...

آموزش delegate در IOS

3. Objective C Class را انتخاب کرده و سپس بر روی دکمه ی Next کلیک نمایید.

4. اسم class و subclass را مانند زیر به ترتیب SampleProtocol و NSObject انتخاب نمایید.

آموزش delegate در IOS

5. سپس Create را انتخاب نمایید.

6. یک protocol به فایل SampleProtocol.h اضافه نمایید. کد آپدیت شده (پس از افزودن پروتکل) به ترتیب زیر خواهد بود:

#import 
// Protocol definition starts here 
@protocol SampleProtocolDelegate 
@required
- (void) processCompleted;
@end
// Protocol Definition ends here
@interface SampleProtocol : NSObject
{
   // Delegate to respond back
   id  _delegate; 
}
@property (nonatomic,strong) id delegate;
-(void)startSampleProcess; // Instance method
@end

7. متد startSampleProcess را با بروز رسانی فایل SampleProtocol.m به صورت زیر، پیاده سازی نمایید.

#import "SampleProtocol.h"
@implementation SampleProtocol
-(void)startSampleProcess{    
    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self.delegate	selector:@selector(processCompleted) userInfo:nil repeats:NO];
}
@end

8. حال با کشیدن Label از object library و جایگذاری آن در UIView، یک UILabel به فایل ViewController.xib اضافه نمایید.