var desc = item.itemDescription
let regex:NSRegularExpression = NSRegularExpression(
pattern: "<.*?>",
options: NSRegularExpressionOptions.CaseInsensitive,
error: nil)!
let range = NSMakeRange(0, countElements(desc))
let htmlLessString :String = regex.stringByReplacingMatchesInString(desc,
options: NSMatchingOptions.allZeros,
range:range ,
withTemplate: "")
和
let range = NSMakeRange(0, countElements(desc))
有一个错误说'Type'字符串?'不符合协议'_CollectionType'。
我知道如何解决这个问题?
我正在运行XCode 6.1.1
答案 0 :(得分:2)
问题是desc
是字符串可选,即String?
。您可以隐式解开它以便在countElements
中使用它,如下所示:
var desc = item.itemDescription as String!
但请注意,itemDescription
可能是一个可选的原因,并且当没有可用的项目描述时它可能会返回nil,因此当您尝试在{{1}中使用它时会导致错误操作。
修改:
BETTER YET,有条件地设置和使用Swift的这个很好的功能一步打开您的描述字符串,称为"Nil Coalescing Operator"(AirspeedVelocity在评论中介绍给我)。
nil合并算子(a ?? b)打开一个可选的a if 包含一个值,如果a为nil,则返回默认值b。
要利用此功能,只需将countElements
行更改为以下内容:
var desc
答案 1 :(得分:0)
您的var desc
必须是[{1}}或String!
类型,而不是String
类型
只需修理它就可以了。
最干净的方法是:
String?