iOS 协议中定义属性

@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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 在Protocol或者Category中是不可以添加属性,但是还是看到这样写的代码。 完整的属性包括成员变量和se...
    观星阅读 9,078评论 0 3
  • 出题者简介: 孙源(sunnyxx),目前就职于百度,负责百度知道 iOS 客户端的开发工作,对技术喜欢刨根问底和...
    戈多_于勒阅读 5,753评论 0 5
  • 摘自: http://www.cocoachina.com/ios/20150803/12872.html 说明...
    program袁阅读 4,324评论 1 3
  • 今天是第二天,姨妈依然那么痛,让我既习惯了它又害怕它,不知道为什么,晚上不痛了竟然还有点怀念它,人就是这样矫情吧。...
    鸡尾变凤凰阅读 890评论 0 1