我正在尝试编写将 amethod
提取HTML
tag
到数组中的 a,因为我想以树结构解析网页。
func extractStringFromHTMLInsideTags(htmlString:String, htmlTagPairArray:[String], saveToArray:[String]) -> String
{
var htmlNSString = htmlString as NSString
var lenght = htmlNSString.length
var openingTag = htmlTagPairArray[0] as NSString
var openingTagLength = openingTag.length
var closingTag = htmlTagPairArray[1] as NSString
var closingTagLength = closingTag.length
if (htmlString.rangeOfString(htmlTagPairArray[0]) != nil)
{
let rangeStart:NSRange! = htmlNSString.rangeOfString(htmlTagPairArray[0], options: NSStringCompareOptions.CaseInsensitiveSearch)
var rangeEnd:NSRange! = htmlNSString.rangeOfString(htmlTagPairArray[1], options: NSStringCompareOptions.CaseInsensitiveSearch)
let startTagIndex: Int = rangeStart.location + openingTagLength
let boldTextLenght: Int = rangeEnd.location - rangeStart.location - openingTagLength
let endTagIndex: Int = startTagIndex + boldTextLenght
let startIndex = advance(htmlString.startIndex,startTagIndex)//advance as much as you like
let endIndex = advance(htmlString.startIndex,endTagIndex)
let range = startIndex..<endIndex
var resultString = htmlString.substringWithRange( range )
saveToArray.append(resultString)
resultString = htmlString.stringByReplacingOccurrencesOfString(htmlTagPairArray[0] + resultString + htmlTagPairArray[1], withString: resultString, options: nil, range: nil)
if (resultString.rangeOfString(htmlTagPairArray[0]) != nil)
{
resultString = extractStringFromHTMLInsideTags(resultString,htmlTagPairArray:htmlTagPairArray, saveToArray:saveToArray)
}
return resultString
}
return htmlString
}
在线上:
saveToArray.append(resultString)
我收到错误消息:
'[String]' 类型的不可变值只有名为 'append' 的变异成员
错误状态saveToArray
是不可变的。我认为数组是通过引用复制的......?
为什么会这样?
(我使用的是 Swift 2.0 和 Xcode 7.1)。