尝试使用字符串常量定义枚举但得到编译错误:
枚举案例的原始值必须是文字
var childView = Backbone.Marionette.ItemView.extend({
...
// REAL FIX
destroy_view: function(){
this.undelegateEvents();
this.$el.children().removeData().unbind();
this.$el.children().remove();
}
但NSLinguisticTagNoun是一个字符串" Noun" ??
答案 0 :(得分:1)
错误消息指出原始值必须是字符串 literal 。这与字符串不同。字符串文字是直接在程序中指定的字符串(引号之间),而不是String类型的变量。请参阅以下代码:
"abcdef" // A string literal
let myString: String = "abcdef" // A constant of type String initialized with a string literal
myString // Not a string literal
NSLinguisticTagNoun和NSLinguisticTagVerb是String类型的常量,而不是字符串文字。枚举原始值为文字的要求是当前Swift版本的限制。要复制您瞄准的功能,您必须执行以下操作:
enum WordTypes: String
{
case Noun = "Noun"
case Verb = "Verb"
}