我希望我的类具有只能从枚举中分配值的属性,但我无法完全理解语法中的语法。这是我的头文件:声明属性类型为枚举值的属性的正确方法
NS_ENUM(NSInteger, SPSSearchResultsOrder) {
SPSSearchResultsOrderAlphabetical,
SPSSearchResultsOrderPrice
};
@interface SPSSearchQuery : NSObject
@property (readonly, nonatomic) enum SPSSearchResultsorder searchResultsOrder;
// etc.
@end
Xcode的建议我的enum
关键字添加到我的财产申报,以获取代码进行编译,这就是为什么我不认为这是正确的。
该属性是否应该键入为NSInteger
,因为这是枚举类型?在这种情况下,我该如何强制该属性只能分配一个枚举的值?
如果我用Java编写这个我会做这样的事情:
public enum SearchResultsOrder {
SearchResultsOrderAlphabetical,
SearchResultsOrderPrice;
}
public class SearchQuery
private SearchResultsOrder searchResultsOrder;
public SearchResultsOrder getSearchResultsOrder() {
return this.searchResultsOrder;
}
}
—正如你可以看到,这里的编译器能够执行枚举和成员变量的类型之间的关系。什么是Objective-C等价物?
在此先感谢。
如果您在'NS_ENUM'前面添加'typedef',那么您可以将您的枚举类型引用为不带'enum'关键字的'SPSSearchResults'。 – 3329