[objective-c] 03 - 类目 延展 协议

本章主要讲解OC语言特性

  1. 类目(Category)
  2. 延展(Extension)
  3. 协议(Protocol)

1.类目

OC语言中的类目机制只有一个作用:为任何一个类添加方法

现在我们创建一个Student类

@interface Student : NSObject

@property(nonatomic,strong)NSString * name;

@end

@implementation @end 

如果想为Student类添加一个方法,现在有两种方法

  1. 直接修改Student类的源码,声明一个方法并实现。
  2. 使用类目。

在无法获取类的源码且需要给一个类添加方法的情况下,类目的作用就非常重要了。

创建类目的语法也非常简单,代码如下

@interface Student (Test)

-(void)test;

@end 
@implementation Student (Test)

-(void)test { NSLog(@"这里是Student类目的test方法"); } @end 

声明和实现的关键字都和之前一样。

不同的是,声明的时候不需要指定父类,而是直接写要添加方法的类的名字,但后面一定要加一个括号,且括号里面写上类目名字。一个类可以有多个类目。

有了这个类目之后,虽然Student类的源码中没有test方法,但仍然可以正常用Student对象去调用这个方法。

Student * s = [[Student alloc] init];
[s test];

2.延展

延展可以看作是一种匿名的类目,类有时需要一些只为自己所见所用的私有方法,这种私有方法可以通过延展的方式来声明。

比如上文中的Student类有一个作弊的方法,不想被外界看得见,但又不想影响本身调用。这个方法就可以声明在延展内,而方法的实现仍然在Student的类内。

@interface Student ()
-(void)zuobi;
@end 

通常我们会将类的声明放在扩展名为.h的文件内,实现放在扩展名为.m的文件内。在生成的可执行文件包中.m文件会被编译加密成.a文件,且不可逆转。

Student.h文件

@interface Student : NSObject

@property(nonatomic,strong)NSString * name;

@end

Student.m 文件

@interface Student ()
-(void)zuobi;
@end @implementation Student (Test) -(void)test { NSLog(@"这里是Student类目的test方法"); } -(void)zuobi { NSLog(@"正在作弊"); } @end 

在这里我们看到,通常将延展的声明也放在.m文件中,这样便可以隐藏类的方法,不被外界所发现且类内可以正常使用。

3.协议

OC中的协议为一组方法的声明。不需要实现。遵守协议的类负责实现协议中的方法。

协议使用@protocol关键字进行声明。

其声明的方法中分为必须实现的方法和可选实现的方法。分别用@required@optional关键字标示。

如果不写默认为必须实现的方法。

@protocol Test <NSObject>

@required
-(void)fun1; // 遵守该协议的类,必须实现的方法

@optional -(void)fun2; // 遵守该协议的类,可选实现的方法 @end 

制定协议很简单,我们可以通过协议去规定一个对象的行为。

例如下面的方法

-(void)test:(id<Test>)obj;

这个方法便要求,obj对象必须是遵守Test协议的类创建的对象。

@property id <Test>obj;

同样,属性对象也可以用协议进行规定。

转载于:https://www.cnblogs.com/lqios/p/4271976.html

# 高校智慧校园解决方案摘要 智慧校园解决方案是针对高校信息化建设的核心工程,旨在通过物联网技术实现数字化校园的智能化升级。该方案通过融合计算机技术、网络通信技术、数据库技术和IC卡识别技术,初步实现了校园一卡通系统,进而通过人脸识别技术实现了更精准的校园安全管理、生活管理、教务管理和资源管理。 方案包括多个管理系统:智慧校园管理平台、一卡通卡务管理系统、一卡通人脸库管理平台、智能人脸识别消费管理系统、疫情防控管理系统、人脸识别无感识别管理系统、会议签到管理系统、人脸识别通道管理系统和图书馆对接管理系统。这些系统共同构成了智慧校园的信息化基础,通过统一数据库和操作平台,实现了数据共享和信息一致性。 智能人脸识别消费管理系统通过人脸识别终端,在无需接触的情况下快速完成消费支付过程,提升了校园服务效率。疫情防控管理系统利用热成像测温技术、视频智能分析等手段,实现了对校园人员体温监测和疫情信息实时上报,提高了校园公共卫生事件的预防和控制能力。 会议签到管理系统和人脸识别通道管理系统均基于人脸识别技术,实现了会议的快速签到和图书馆等场所的高效通行管理。与图书馆对接管理系统实现了一卡通系统与图书馆管理系统的无缝集成,提升了图书借阅的便捷性。 总体而言,该智慧校园解决方案通过集成的信息化管理系统,提升了校园管理的智能化水平,优化了校园生活体验,增强了校园安全,并提高了教学和科研的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值