Когда веб-утилита удаляет мой форум в swift, я могу запустить следующий код, чтобы напечатать в консоли заголовки каждого форума topi c:
enum HTMLError: Error {
case badInnerHTML
}
class DiscussionBoardResponse {
init(_ innerHTML: Any?) throws {
guard let htmlString = innerHTML as? String else { throw HTMLError.badInnerHTML }
let doc = try SwiftSoup.parse(htmlString)
let titles = try doc.getElementsByClass("Forum_NormalBold").array()
var nestedLoginController: LoginController!
for i in 0..<titles.count {
let title = try titles[i].text()
print(title)
print("")
}
}
}
Теперь выше мне нужно назначить то, что в заголовке в массив за пределами класса. Поэтому я создал переменную (которая может быть неправильной и, возможно, в этом проблема):
var discussionTitles = [String?]()
Мой viewController называется LoginController. Теперь я попытался добавить это в DiscussionBoardResponse, чтобы назначить заголовки переменной:
class DiscussionBoardResponse {
//let discussionTopics: [DiscussionTopicSingle]
init(_ innerHTML: Any?) throws {
guard let htmlString = innerHTML as? String else { throw HTMLError.badInnerHTML }
let doc = try SwiftSoup.parse(htmlString)
let titles = try doc.getElementsByClass("Forum_NormalBold").array()
var nestedLoginController: LoginController!
for i in 0..<titles.count {
let title = try titles[i].text()
//tried converting title into a string in case it was't
//guard let titleString = title as? String else { return }
nestedLoginController?.discussionTitles[i] = title
print(nestedLoginController?.discussionTitles[i])
print("")
}
}
}
Теперь, когда я печатаю nestedLoginController? .DiscussionTitles [I] Он выводит только nil для каждого заголовка. Что я делаю не так?
ОБНОВЛЕНИЕ: Я теперь немного переосмыслил, как это сделать, потому что другой способ не работает, поэтому внутри, где я нажимаю кнопку, которая приводит меня к DiscussionBoardResponse, выглядит так:
do {
let discussionResponse = try DiscussionBoardResponse(innerLoginHTML)
print("Got Response")
} catch{}
Я пытаюсь отправить через переменную обсуждение Заголовки
let discussionResponse = try DiscussionBoardResponse(innerLoginHTML, test: self.discussionTitles)
и в Обсуждении Ответ у меня сейчас:
init(_ innerHTML: Any?, test: [String] = []) throws {
guard let htmlString = innerHTML as? String else { throw HTMLError.badInnerHTML }
let doc = try SwiftSoup.parse(htmlString)
let titles = try doc.getElementsByClass("Forum_NormalBold").array()
//var nestedLoginDelete: [String] = []
for i in 0..<titles.count {
let title = try titles[i].text()
test.append(title)
}
}
}
, и теперь я получаю сообщение об ошибке: Не могу использовать мутирующий член в неизменяемом значении: «test» - это константа «let». Я не уверен, что даже если это сработало, я на самом деле манипулирую переменными DiscussionTitles или я просто манипулирую каким-то его экземпляром? В любом случае, что я делаю не так?