它有语法错误。 Swift新手:(
var inputString: String = "Hello its question? </question> Oky its the answer"
let splitter: String = "</question>"
var splittedArray = [inputString .componentsSeparatedByString(splitter)]
var questionIndex = 0
var answerIndex = 0
var mQuestions = []
var mAnswers = []
for var index = 0; index < splittedArray.count; ++index {
if index % 2 == 0{
// Question comes first
splittedArray.append(mQuestions[questionIndex])
questionIndex++
}else{
// Answer comes second
splittedArray.append(mAnswers[answerIndex])
answerIndex++
}
}
错误是:
对象不能转换为String,
在这行代码中。
splittedArray.append(mQuestions[questionIndex])
答案 0 :(得分:2)
确实存在语法错误,但并非全部:
[inputString.components...]
appends
以下是对上述内容的快速重写:
import Foundation
var inputString = "Hello its question? </question> Oky its the answer"
let splitter = "</question>"
var splittedArray = inputString.componentsSeparatedByString(splitter) as [String]
var mQuestions = [String]()
var mAnswers = [String]()
while splittedArray.count >= 2 {
mQuestions.append(splittedArray.removeAtIndex(0))
mAnswers.append(splittedArray.removeAtIndex(0))
}
答案 1 :(得分:0)
var splittedArray = [inputString .componentsSeparatedByString(splitter)]
客观的一点点宿醉在这里。使用这些方括号,你将它变成一个内部有数组的数组。这将使splittedArray
具有错误的类型和错误的内容。
一旦这个程序编译,它也会崩溃,因为你将使用一个越界索引从空splittedArray
数组追加到mQuestions
。