首页 > 学院 > 开发设计 > 正文

关于object-c的@protocol的理解

2019-11-14 19:37:39
字体:
来源:转载
供稿:网友

java角度来理解 

@PRotocol 相当于 java 的接口定义,用法也一样

 

下面是试验例子

 

@protocol mytestClass <NSObject>- (void) callback:(int) num;@end@interface DiscoveryController : UIViewController<mytestClass>{    UIImageView *imageView;    }-(UIImage *) getImageFromURL:(NSString *)fileURL;@end

  在这里定义了protocol并由类

DiscoveryController实现此接口

@interface MyCallBack : NSObject{    id<mytestClass> deleage;}@property(nonatomic,retain) id<mytestClass> deleage;- (void)setRun;@end

  

MyCallBack中保存从其它类传过来的
deleage当需要时进行回调。

////  MyCallBack.m//  ACMobile////  Created by mr.liang on 15/1/22.//  Copyright (c) 2015年 mr.liang. All rights reserved.//#import "MyCallBack.h"@implementation MyCallBack@synthesize deleage;- (void) runThread{    NSLog(@"我在运行");    [NSThread sleepForTimeInterval:2];    [deleage callback:1];}- (void)setRun{    NSThread *callbackthread = [[NSThread alloc] initWithTarget:self selector:@selector(runThread) object:nil];    [callbackthread start];}@end

  这里通过线程进行异步回调会让程序更加直观。

    MyCallBack *vv = [[MyCallBack alloc] init];    vv.deleage = self;    [vv setRun];

  需要用到protocol的地方实现这个protocol并传送指针;

 

互联网的一点事 www.yidin.net


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表