例如,定义了NS_Enum之后.
typedef NS_ENUM(NSInteger, Type) {
TypeNone = 0,
TypeA = 1,
}
var x = 2
if let type: Type = Type(rawValue: x) {
// Swift 1.2 executes this block.
}
else {
// Previous swift executes this block.
}
如何确定x是否在NS_ENUM上定义?
访问Set元素很快,Set类型必须是hashable。
我认为Swift只存储每个元素的散列值,但我发现原始值(不是散列值)也可以访问。例如:
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]
for genre in favoriteGenres {
print("\(genre)")
}
输出:
// Jazz
// Hip hop
// Classical
swift如何在内存中存储Set type并访问它?
我有这个枚举:
enum GestureDirection:UInt {
case Up = 1 << 0
case Down = 1 << 1
case Left = 1 << 2
case Right = 1 << 3
}
但在每种情况下,我都会得到错误:
枚举大小写的原始值必须是文本
我不明白。
Swift 1.2,Xcode 6.3.2
我想使用Swift循环一个最初在Objective中定义的enum。
目标C的定义现在如下:
typedef NS_ENUM(NSInteger, Enum) { A, B, C };
如果我尝试使用for e in Enum,我会从Swift编译器获得以下错误消息( Xcode 6.1.1中):
Type 'Enum.Type' does not conform to protocol Sequence.Type
少了什么?如果这是可能的话,我怎么能让这个枚举表现为一个序列呢?
是否可以有多个单词枚举的情况
enum Country: Int {
case Pakistan=1,United Arab Emirates,United Kingdom
}
我试过了:
enum Country: Int {
case Pakistan=1,"United Arab Emirates","United Kingdom"
}
不幸的是:(
<stdin>:3:46: error: expected identifier after comma in enum 'case' declara
我正在用一些常用的类来创建类库,比如persons,addresses等等。这个库将在一个多语言的应用程序中使用,我正在寻找最方便的方法来表示一个人的性别。
理想情况下,我希望能够编写这样的代码:
Person person = new Person { Gender = Genders.Male,
FirstName = "Nice",
LastName = "Dude" }
if (person.Gender == Genders.Mal
在Swift中,枚举中有原始值,类和结构中有默认值。有什么不同吗?有人能为我解释一下吗?
例如。枚举的原始值(来自Office Swift文档)
enum ASCIIControlCaracter: Character {
case Tab = "\t"
case LineFeed = "\n"
case CarriageReturn = "\r"
}
我想将字符串作为常量存储在Swift中,这样我就可以重用它并向其中注入变量。例如,我可以在C#中这样做:
var template = "Your name is {0} and your age is {1}."
someLabel.text = string.Format(template, "John", 35)
some2Label.text = string.Format(template, "Jane", 33)
我如何在Swift中实现这一点,以便我可以重用字符串模板?
在带有Swift 2代码的Xcode 7b2上,我有以下代码:
在切换的情况下,编译器返回以下警告:
Default will never be executed
代码:
switch(type) {
case .foo:
return "foo"
case .bar:
return "bar"
case .baz:
return "baz"
default:
return "?"
}
为什么会有警告呢?
我在Swift编程语言指南上读到了斯威夫特·斯威夫特( Swift enum)的S的故事,文章比较了斯威夫特的enum和C的enum之间的不同之处。这让我对枚举的来源感到好奇。在询问之前,我确实在网上搜索过,甚至询问了一些人,他们都认为C(我想我是在确认枚举是否来自C。)
第一个包含枚举的编程语言是什么?