آموزش Delegate در iOS 

3 سال پیش
آموزش Delegate در iOS

آموزش Delegate در iOS 

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش Delegate در iOS خواهیم پرداخت.

مثال Delegate

بیایید فرض کنیم یک شی A برای انجام عملی یک شی B را فراخوانی می کند. پس از کامل شدن عمل، جسم A باید بداند که B کار را به اتمام رسانده و اقدامات لازم را انجام دهد. این امر با کمک Delegates حاصل می شود.
مفاهیم کلیدی در مثال بالا عبارتند از:
A یک شی deleg نماینده از B است.
B مرجع A خواهد داشت.
A روش های نمایندگی B را پیاده سازی می کند.
B از طریق روش های تفویضی به A اطلاع می دهد.

مراحل ایجاد Delegate

مرحله ۱ – ابتدا یک برنامه view single ایجاد کنید.
مرحله ۲ – سپس File → New → File را انتخاب کنید …
iOS Tutorial
مرحله ۳ – سپس Objective C Class را انتخاب کرده و Next را کلیک کنید.
مرحله ۴ – برای کلاس نام تعیین کنید، مثلا SampleProtocol با زیر کلاس به عنوان NSObject.
iOS Tutorial
مرحله ۵ – سپس select کنید.
مرحله ۶ – یک پروتکل به فایل SampleProtocol.h اضافه کنید و کد به روز شده به شرح زیر است –
#import <Foundation/Foundation.h>

// Protocol definition starts here 
@protocol SampleProtocolDelegate <NSObject>
@required
- (void) processCompleted;
@end

// Protocol Definition ends here
@interface SampleProtocol : NSObject {
   // Delegate to respond back
   id <SampleProtocolDelegate> _delegate; 
}
@property (nonatomic,strong) id delegate;

-(void)startSampleProcess; // Instance method
@end

 

مرحله ۷ – روش نمونه را با به روزرسانی فایل SampleProtocol.m مانند تصویر زیر پیاده سازی کنید.

#import "SampleProtocol.h"

@implementation SampleProtocol

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

 

مرحله ۸ – با درگ کردن برچسب از کتابخانه شی به UIView ، یک UILabel در ViewController.xib اضافه کنید همانطور که در زیر نشان داده شده است

آموزش Delegate در iOS

 

مرحله ۹ – یک IBOutlet برای برچسب ایجاد کنید و نام آن را myLabel بگذارید و کد را به صورت زیر به روز کنید تا SampleProtocolDelegate را در ViewController.h اتخاذ کنید

#import <UIKit/UIKit.h>
#import "SampleProtocol.h"

@interface ViewController : UIViewController<SampleProtocolDelegate> {
   IBOutlet UILabel *myLabel;
}
@end

 

مرحله ۱۰ روش delegate را پیاده سازی کنید ، برای SampleProtocol شی ایجاد کنید و روش startSampleProcess را فراخوانی کنید. فایل ViewController.m به روز شده به شرح زیر است

 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
   SampleProtocol *sampleProtocol = [[SampleProtocol alloc]init];
   sampleProtocol.delegate = self;
   [myLabel setText:@"Processing..."];
   [sampleProtocol startSampleProcess];
   // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}

#pragma mark - Sample protocol delegate
-(void)processCompleted {
   [myLabel setText:@"Process Completed"];
}
@end

 

مرحله ۱۱ ما یک خروجی به شرح زیر خواهیم دید. در ابتدا برچسب “processing…” را نشان می دهد ، که به محض فراخوانی روش تفویض توسط شی SampleProtocol به روز می شود.

آموزش Delegate در iOS

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی iOS

  1. آموزش برنامه نویسی iOS
  2.  شروع آموزش برنامه نویسی iOS 
  3.  آموزش تنظیمات محیطی iOS 
  4. آموزش objective C در بزنامه نویسی iOS 
  5. آموزش ایجاد برنامه آیفون در برنامه نویسی iOS
  6. آموزش اکشن و خروجی در برنامه نویسی iOS
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه