Получение данных из REST API для iOSIOS

Программируем под IOS
Ответить
Anonymous
 Получение данных из REST API для iOS

Сообщение Anonymous »

Я впервые использую Swift и создаю приложение для iOS, и у меня возникли проблемы с получением данных из REST API. Я знаком с разработкой для Android, но не для iOS.

Я пытаюсь использовать API с сайта www.thecocktaildb.com.

Пример запроса: http://www.thecocktaildb.com/api/json/v ... =margarita.

Я хотел бы использовать этот запрос и введите строку «Маргарита» или любое другое название напитка из панели поиска, а затем отобразите массив напитков в виде таблицы.

Прямо сейчас, когда я запускаю , я не получаю никакого ответа от консоли.

Я на правильном пути?

Я также не знаю, как отображать каждый результат (напиток) в ячейке табличного представления.

Здесь это мой файл:

SearchViewController.swift

class SearchViewController: UIViewController, UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var TableView: UITableView!
@IBOutlet weak var SearchBar: UISearchBar!

// search in progress or not
var isSearching : Bool = false

override func viewDidLoad() {
super.viewDidLoad()

for subView in self.SearchBar.subviews
{
for subsubView in subView.subviews
{

if let textField = subsubView as? UITextField
{
textField.attributedPlaceholder = NSAttributedString(string: NSLocalizedString("Search", comment: ""))

}
}
}

// set search bar delegate
self.SearchBar.delegate = self
}

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

if self.SearchBar.text!.isEmpty {

// set searching false
self.isSearching = false

}else{

// set searghing true
self.isSearching = true

let postEndpoint: String = "http://www.thecocktaildb.com/api/json/v ... rch.php?s=" + self.SearchBar.text!.lowercaseString

guard let url = NSURL(string: postEndpoint) else {
print("Error: cannot create URL")
return
}

let urlRequest = NSURLRequest(URL: url)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)

let task = session.dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) in
guard let responseData = data else {
print("Error: did not receive data")
return
}
guard error == nil else {
print("error calling GET on www.thecocktaildb.com")
print(error)
return
}
// parse the result as JSON, since that's what the API provides
let post: NSDictionary
do {
post = try NSJSONSerialization.JSONObjectWithData(responseData,
options: []) as! NSDictionary
} catch {
print("error trying to convert data to JSON")
return
}

if let strDrink = post["strDrink"] as? String {
print("The drink is: " + strDrink)
}
})
task.resume()

}
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

}

// hide kwyboard when search button clicked
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
self.SearchBar.resignFirstResponder()
}

// hide keyboard when cancel button clicked
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
self.SearchBar.text = ""
self.SearchBar.resignFirstResponder()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}


Подробнее здесь: https://stackoverflow.com/questions/346 ... pi-for-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»