Я создаю приложение, и я не могу понять, как создать «соответствие» из текстового API JSON с заданным предопределенным словом; Я думаю, что это называется интерполяцией, и я думаю, что мне придется использовать enum/switch, но для жизни я не могу понять, как я мог бы реализовать это с SwiftyJSON.Помощь по-прежнему необходима: SwiftyJSON синтаксическая интерполяция (?) Swift enum
В принципе, я хочу, чтобы пользователь «выиграл игру», если предопределенное слово, скажем, «яблоко», соответствует любому из ответов JSON, полученных от API. Если слово не найдено в ответе JSON, пользователь должен будет продолжать играть.
Может кто-то пролить свет на это для меня, как это сделать?
Если я ошибаюсь в своем методологическом предположении, пожалуйста, исправьте меня на соответствующих условиях.
Я могу, очевидно, опубликовать свой код, но он довольно длинный и не хочет бесцельно публиковать то, что мне не нужно.
Спасибо.
EDIT:
Я хочу, чтобы соответствовать заранее определенное слово «яблоко» в любое из слов, полученных от JSON.
Если есть совпадение, пользователь выигрывает, отображается сообщение, пользователь переходит к следующему уровню или пользователь возвращается на главный экран.
Если нет совпадения, пользователь должен либо продолжить игру, либо отменить игру.
Я хотел бы сделать это для нескольких слов на разных уровнях игры.
Первый уровень: соответствие «яблоку» полученному ответу JSON.
Второй уровень: сопоставьте «компьютер» с полученным ответом JSON.
Третий уровень: сопоставить «телефон» или «телефон» или «iPhone» или «Android» или все или все вышеперечисленное с полученным ответом JSON.
это более явный? @rmaddy
есть к этому коду, но это, по-видимому, самая важная часть, проверка ошибок опущена.
extension ViewController {
func analyzeResults(_ dataToParse: Data) {
// Update UI on the main thread
DispatchQueue.main.async(execute: {
// Use SwiftyJSON to parse results
let json = JSON(data: dataToParse)
let errorObj: JSON = json["error"]
// Check for errors
if (errorObj.dictionaryValue != [:]) {
self.labelResults.text = "Error code \(errorObj["code"]): \(errorObj["message"])"
} else {
// Parse the response
print(json)
let responses: JSON = json["responses"][0]
// Get label annotations
let labelAnnotations: JSON = responses["labelAnnotations"]
let numLabels: Int = labelAnnotations.count
var labels: Array<String> = []
if numLabels > 0 {
var labelResultsText:String = "Labels found: "
for index in 0..<numLabels {
let label = labelAnnotations[index]["description"].stringValue
labels.append(label)
}
for label in labels {
// if it's not the last item add a comma
if labels[labels.count - 1] != label {
labelResultsText += "\(label), "
} else {
labelResultsText += "\(label)"
}
}
self.labelResults.text = labelResultsText
} else {
self.labelResults.text = "No labels found"
}
Ваш вопрос не понятен вообще. Обновите свой вопрос с помощью краткого, релевантного JSON и краткого, соответствующего кода, показывающего только те части, которые касаются вашего вопроса. Четко укажите, с какой частью у вас проблемы. – rmaddy
Извините, я думал, что я проясняюсь; обновлено по вашему запросу @rmaddy – pythlang