iOS 里的 Protocol

编程入门 行业动态 更新时间:2024-10-07 18:22:23

<a href=https://www.elefans.com/category/jswz/34/1770014.html style=iOS 里的 Protocol"/>

iOS 里的 Protocol

iOS 里的 Protocol

协议 (Protocol) 是一个非常灵活的东西,它考验着开发者的抽象能力,按照思路,用起来还是很好用的。

但 Objective-C 中的使用真的是很少,用的最多的就是 Delegate 了,这也是苹果官方用的最多的方式。

这都源自于 Objective-C 最初的设计思路,也许并没有希望 Protocol 发挥很大的作用(纯属个人臆测)。

在 Swift 中,协议终于成为了主力队员,相关内容可以查看这篇文章。

Protocol

Protocol 仅仅是一种声明,它可以声明方法、属性,然后在需要的类中遵循它。

@protocol SomeProtocol <NSObject>@required;
@property (nonatomic, copy) NSString *property;@optional;
- (void)method;@end

首先,protocol 是可以继承的,它继承自 <NSObject> 协议,Objective-C 真是把面向对象里面的继承已经做的深入骨髓。

其次,protocol 是可以声明属性和方法的,如果声明了属性,在使用这个协议的时候,类的实现里面需要自己去实现 setter getter 方法,当然也可以 @synthesize 来自动生成。

@required; 是必须实现的意思,如果遵循了这个协议,就必须实现其下方的方法和属性。不然会在调用的时候导致 Crash。

@optional 非必须实现。

看看最基础的 NSObject 类,它就遵循 <NSObject> 协议,一些基础的抽象属性和方法都在里面:

@protocol NSObject- (BOOL)isEqual:(id)object;
@property (readonly) NSUInteger hash;@property (readonly) Class superclass;
- (Class)class OBJC_SWIFT_UNAVAILABLE("use 'anObject.dynamicType' instead");
- (instancetype)self;

- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(i

更多推荐

iOS 里的 Protocol

本文发布于:2024-02-26 04:22:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701337.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:iOS   Protocol

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!