2017-02-01 6 views
0

Я создаю приложение, и я не могу понять, как создать «соответствие» из текстового 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" 
       } 
+0

Ваш вопрос не понятен вообще. Обновите свой вопрос с помощью краткого, релевантного JSON и краткого, соответствующего кода, показывающего только те части, которые касаются вашего вопроса. Четко укажите, с какой частью у вас проблемы. – rmaddy

+0

Извините, я думал, что я проясняюсь; обновлено по вашему запросу @rmaddy – pythlang

ответ

0
let json = JSON(data: dataToParse) 

guard json["error"] == nil else { 
    print(json["error"].string) 
    return 
} 

let labelAnnonations = response["labelAnnonations"].array 
var labels: [String] = [] 
var labelResultsText = "Labels found: " 

if labelAnnonations.count > 0 { 

    for labelAnnonation in labelAnnonations { 

     labelResultsText += "\(labelAnnonation["description"].string)," 
     labels.append(labelAnnonation["description"].string) 
    } 

} else { 

    self.labelResults.text = "No labels found" 
} 

labelResultsText.remove(at: labelResultsText.index(before: labelResultsText.endIndex)) 
+0

спасибо за ваш ответ, я попробую. Я редактировал свой пост, чтобы отразить, как я проверяю ошибки. какой путь более эффективен/лучше? @lucaspalaian – pythlang

+0

ваш код выглядит правильно, но я не могу понять, как его реализовать в шахте выше:/@lucaspalaian – pythlang

 Смежные вопросы

  • Нет связанных вопросов^_^