使用字符串常量的枚举NSLinguisticTagNoun不允许

时间:2016-02-03 19:30:18

标签: swift enums

尝试使用字符串常量定义枚举但得到编译错误:

枚举案例的原始值必须是文字

var childView = Backbone.Marionette.ItemView.extend({
     ...
     // REAL FIX
     destroy_view: function(){
          this.undelegateEvents();

          this.$el.children().removeData().unbind();
          this.$el.children().remove();
     }

但NSLinguisticTagNoun是一个字符串" Noun" ??

1 个答案:

答案 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"
}