作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 Swift 中的全局枚举函数遍历字符串数组。
看起来像这样:
let fontNames = UIFont.fontNamesForFamilyName(familyName)
for (index, value) in enumerate(fontNames) {
// Do something here
}
但是 Xcode 报错说
无法将表达式的类型“EnumerateGenerator”转换为类型“$T1”
最佳答案
fontNamesForFamilyName()
返回 AnyObject[]!,不能直接枚举。您已明确键入您的 fontNames 数组。
let fontNames: Array = UIFont.fontNamesForFamilyName(familyName)
for (index, value : AnyObject) in enumerate(fontNames) {
println(value)
}
正如@Van Du Tran 在下面的评论中指出的那样,枚举的语法在 Swift 2 中发生了变化。现在您可以使用以下内容。
let fontNames: Array = UIFont.fontNamesForFamilyName(familyName)
for (index, value) in fontNames.enumerate() {
print(value)
}
同样值得注意的是,由于 fontNamesForFamilyName
现在使用 Objective C 泛型类型,它返回 [String]
所以没有来自 AnyObject
的转换需要。
关于swift - 在 Swift 中枚举函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150294/
我是一名优秀的程序员,十分优秀!