美文网首页
iOS 协议中定义属性

iOS 协议中定义属性

作者: 13d8cd576232 | 来源:发表于2019-04-29 10:35 被阅读0次
    @protocol CETableViewModelProtocol <NSObject>
    @property (nonatomic, strong) Class cellClass;
    @property (nonatomic,  copy ) NSString* cellType;
    @end
    

    协议中是可以定义属性的,但是只有对应的getter和setter方法 但是没有对应的成员变量 而getter和setter就是操作的对应成员变量 所以就无法调用getter或者setter 否则项目崩溃

    想要调用的话 需要在实现这个协议的类中用@synthesize cellType = _cellType;来声明成员变量,这样这个类的对象就拥有了协议中定义的这些属性,用法跟自身其他属性一样就不啰嗦了。

    来看看实例吧:

    .h

    #import <Foundation/Foundation.h>
    #import "CETableViewModelProtocol.h"
    NS_ASSUME_NONNULL_BEGIN
    
    @interface CETableViewModel : NSObject <CETableViewModelProtocol>
    
    @end
    
    NS_ASSUME_NONNULL_END
    

    .m

    #import "CETableViewModel.h"
    
    @implementation CETableViewModel
    @synthesize cellHeight   = _cellHeight;
    @synthesize cellType     = _cellType;
    @end
    
    

    个人博客地址:https://youyou0909.github.io

    相关文章

      网友评论

          本文标题:iOS 协议中定义属性

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