我遇到了奇怪的行为。我曾经有:
@property (nonatomic) ApplicationState applicationState;
直接在我的应用程序类中。现在它被提取到协议(protocol)
@protocol ApplicationProtocol <NSObject>
@property (nonatomic) ApplicationState applicationState;
ApplicationState 是枚举
typedef NS_ENUM(NSUInteger, ApplicationState)
{
ApplicationStateNormal = 0,
ApplicationStateExpanded = 1,
ApplicationStateMaximized = 2
};
现在。它曾经有效。现在这样的行:
self.applicationState = ApplicationStateMaximized;
从实现类中调用不会产生任何影响。
更新
Agy , rickster你们都是对的。我忘了添加到这个问题记录中,我已经在实现类中综合了属性。我没有注意到的是,我的同事添加了 getter,它总是返回相同的值(不幸的是,IDE 不显示这个访问器,直到我在我的类中复制属性)
最佳答案
在协议(protocol)中声明一个@property
不会在采用该协议(protocol)的类中为该属性合成存储或访问器。为此,您需要这样的东西:
@implementation Application
@synthesize applicationState = _applicationState;
关于ios - NS_ENUM 作为协议(protocol)中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30984051/