美文网首页
GeekBand OC 11. 类型合同:协议

GeekBand OC 11. 类型合同:协议

作者: robinn9810 | 来源:发表于2016-05-22 23:46 被阅读11次

    协议 Protocol

    .h文件:只提供外部接口,不提供具体实现

    @protocol Drawable @end

    包含属性、实例方法、类方法(、初始化器、析构器)

    不包含实例变量(定义属性时只会自动生成getter和setter访问器,不会再自动生成实例变量)

    使用协议

    #import “.h”

    @interfaceBLNPoint :NSObject<Drawable>

    遵守协议需要实现所有@required的成员(.h文件里实行需要重复声明(生成实例变量),方法声明不用重写,.m文件里直接写实现方法)

    注意警告信息

    1. @required没有全实现会有警告信息

    协议可以作为声明类型void func( id<Drawable> obj),但不能创建实例变量

    2. 协议变量被赋值非协议类型变量也会有警告信息

    检查协议

    conformsToProtocol

    协议继承

    一个协议可以继承一个或多个协议,子协议中需要实现父协议中的方法

    协议组合

    < , >

    一个类遵守多个协议

    可选协议

    @optional以下的全部是可选协议(直到@required)

    不必须实现

    常用协议

    NSObject:区分基类和协议(NSObject和 <NSObject>)

    NSCopying,NSMutableCopying:拷贝

    NSFastEnumeration:使用for-in

    NSCoding

    相关文章

      网友评论

          本文标题:GeekBand OC 11. 类型合同:协议

          本文链接:https://www.haomeiwen.com/subject/fqxarttx.html