我遇到了奇怪的行为。我曾经有:

@property (nonatomic) ApplicationState applicationState;

直接在我的Application类中。现在将其提取到协议

@protocol ApplicationProtocol <NSObject>
@property (nonatomic) ApplicationState applicationState;


ApplicationState是枚举

typedef NS_ENUM(NSUInteger, ApplicationState)
{
    ApplicationStateNormal = 0,
    ApplicationStateExpanded = 1,
    ApplicationStateMaximized = 2
};


现在。它曾经工作。现在这样的行:
self.applicationState = ApplicationStateMaximized;
从实现类调用不会产生任何效果。



更新

Agyrickster您都是对的。我忘了补充说明,我已经在实现类中综合了属性。我没有注意到的是,我的同事添加的getter始终返回相同的值(不幸的是,IDE在我重复类中的属性之前不会显示此访问器)

最佳答案

您需要综合属性:

@implementation Application

@synthesize applicationState = _ applicationState;

@end


或再次声明该属性:

@interface Application : NSObject <ApplicationProtocol>

@property (nonatomic) ApplicationState applicationState;

@end

10-08 07:27