你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> ios回調函數的標准實現:protocol+delegate

ios回調函數的標准實現:protocol+delegate

編輯:IOS技巧綜合
[摘要]本文是對ios回調函數的標准實現:protocol+delegate的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

一、項目結構

  

二、主要代碼

  1、CoreManage.h

#import <Foundation/Foundation.h>

@protocol SampleProtocol;

//聲明核心類的屬性和方法
@interface CoreManage : NSObject

@property(nonatomic,assign) id<SampleProtocol> delegate;

- (void)doMainWork;

@end


//聲明協議中的接口函數
@protocol  SampleProtocol <NSObject>

@required
- (void)innerTaskCallBack:(int) innerTaskSerialNo;

@optional
- (void)resultDisplayCallBack:(NSString *)backInfo;

@end

  2、CoreManage.m

#import "CoreManage.h"

@implementation CoreManage

@synthesize delegate=_delegate;

- (id)init
{
    self = [super init];
    if (self) {
        //初始化代碼
    }
    
    return self;
}

- (void)doMainWork
{
    NSLog(@"核心類完成工序0");
    NSLog(@"核心類完成工序1");
    [self.delegate innerTaskCallBack:2];//工序2通過外部類回調函數完成
    NSLog(@"核心類完成工序3");
    [self.delegate resultDisplayCallBack:@"成功"];//通過外部類回調函數顯示任務完成結果
}

@end

  3、OuterClass.h

#import <Foundation/Foundation.h>
#import "CoreManage.h"

@interface OuterClass : NSObject<SampleProtocol>

- (void)run;

@end

  4、OuterClass.m

#import "OuterClass.h"


@implementation OuterClass

- (void)run
{
    CoreManage *coreManage=[[CoreManage alloc] init];
    coreManage.delegate=self;
    [coreManage doMainWork];
}

//回調函數1
- (void)innerTaskCallBack:(int) innerTaskSerialNo{
    NSLog(@"外部類的回調函數,完成工序%d",innerTaskSerialNo);
}

//回調函數2
- (void)resultDisplayCallBack:(NSString *)backInfo{
    NSLog(@"外部類的回調函數,輸出完成結果:%@",backInfo);
}

@end

  5、AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    
    OuterClass *outerClass=[[OuterClass alloc]init];
    [outerClass run];
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

三、運行結果

  

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved