iOS 协议中定义属性

2019-04-29  本文已影响0人  13d8cd576232
@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

上一篇下一篇

猜你喜欢

热点阅读