温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Objective OC中协议怎么使用

发布时间:2021-12-30 16:57:10 来源:亿速云 阅读:109 作者:iii 栏目:开发技术

本篇内容主要讲解“Objective OC中协议怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Objective OC中协议怎么使用”吧!

其实OC中的协议有点像接口或称抽象类。OC中的协议定义了一系列的方法 , 有些方法是必须实现的 , 有些方法是可以不用实现的。

定义一个协议的关键字是 : @protocol

例如:

@protocol Ainy

    -(void) Print;

@end

如上就是一个协议 , 协议的名称为Ainy 。定义了一个方法为-(void) Print 。 注意协议是在h文件中定义的 , 例如:

Objective OC中协议怎么使用

如何实现这个Ainy协议:使用<>括号 , 如下

我新建了一个Dog类 , 继承了Animal , 并且需要实现协议Ainy代码如下:

Objective OC中协议怎么使用

在Dog.m中的实现如下:

//
//  Dog.m
//  PartDemo
//
//  Created by Apple on 2017/12/3.
//  Copyright  2017年 Apple. All rights reserved.
//

#import "Dog.h"

@implementation Dog
@synthesize ID;
-(void) Print{
    NSLog(@"Xiao Huang");
}
@end

当然 , 可能在Animal中定义了 Aonaufly协议 , 如何同时显示Ainy 和 Aonaufly协议呢 ??

@interface Dog : Animal <Ainy , Aonaufly>用,隔开

问题来了 , 怎么定义可以不需要实现的方法 和 如何定义一定要实现的方法

@optional 定义不一定需要实现的方法(在其后的在所有的方法)

@required 定义一定需要实现的方法(在其后的所有方法)

Objective OC中协议怎么使用

如何知道此类实现了Ainy协议了呢??

id Object;

if( [Object conformsToProtocol : @protocol (Ainy)] == YES ){

}

当让如果你知道Object一定实现了协议Ainy , 你可以这么干

id <Ainy> Object;

加入Object实现了协议Ainy , 如何知道Object实现了Ainy的方法 Dance呢 , 因为Dance是可以不用实现的方法

if( [Object respondsToSelector: @selector (Dance)] == YES ){

}

到此,相信大家对“Objective OC中协议怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI