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