Как остановить MBProgressHUD и добавить подпредставление, когда сервер не возвращает данныеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как остановить MBProgressHUD и добавить подпредставление, когда сервер не возвращает данные

Сообщение Anonymous »

В моем приложении есть этот класс для получения данных с моего сервера:

Код: Выделить всё

class Api{

func loadOffers(completion:(([Offers])-> Void), offer_id: String, offerStatus:String){

let myUrl = NSURL(string: "http://www.myServer.php/api/v1.0/offers.php")
let request = NSMutableURLRequest(URL: myUrl!)
request.HTTPMethod = "POST"
let postString = "offer_id=\(offer_id)&offerStatus=\(dealStatus)&action=show"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)

let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
{ data, response, error in
if error != nil {
println("error\(error)")
}else{
var err:NSError?

let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)

if let dict = jsonObject as? [String: AnyObject] {

if let myOffers = dict["offers"] as? [AnyObject] {

var offers = [Offers]()

for offer in myOffers{

let offer = Offers(dictionary: offer as! NSDictionary)

offers.append(offer)

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0 )){
dispatch_async(dispatch_get_main_queue()){

completion(offers)

}
}
}
}
}
}
}
task.resume()
}
}
затем в контроллере представления я загружаю модель:

Код: Выделить всё

    class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var offers: [Offers]!

func loadModel() {
let loadingNotification = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
loadingNotification.mode = MBProgressHUDMode.Indeterminate
loadingNotification.labelText = "updating your offers..."
offers = [Offers]()
let api = Api()
api.loadOffers(didLoadOffers , offer_id: dealIdent!, offerStatus: "open")

}

func didLoadOffers(offers:[Offers]){

self.offers = offers
self.tableView.reloadData()
MBProgressHUD.hideAllHUDsForView(self.view, animated: true)
self.refreshControl.endRefreshing()
}

override func viewWillAppear(animated: Bool) {

loadModel()

}
}
Все работает, за исключением того, что когда словарь JSON пуст, что означает отсутствие предложений, MBProgressHUD продолжает вращаться.
Изображение

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

Код: Выделить всё

if offers.isEmpty{ MBProgressHUD.hideAllHUDsForView(self.view, animated: true) }
а также

Код: Выделить всё

if offers == 0 { MBProgressHUD.hideAllHUDsForView(self.view, animated: true) }
но это не работает

Подробнее здесь: https://stackoverflow.com/questions/301 ... urning-dat
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Файл MBProgressHud.h не найден
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Добавить подпредставление в UIButton
    Anonymous » » в форуме IOS
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • В IOS при масштабировании rootview подпредставление должно реагировать как приложение freeform/figma. есть идеи как это
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Сохраняйте подпредставление, выровненное по верху в .NET MAUI ScrollView [проблема с iOS]
    Anonymous » » в форуме C#
    0 Ответы
    72 Просмотры
    Последнее сообщение Anonymous
  • Как вывести подпредставление на передний план при нажатии на него?
    Anonymous » » в форуме IOS
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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