Повышение NSError в RubyMotion

Я пишу приложение, которое в основном просто клиент для http API. Я пытаюсь повторно использовать код из примера Redis Search (DataParser и JsonParser) , но когда во время вызова API возникает ошибка, RubyMotion не может вызвать эту ошибку. Он пытается raise найти первую ошибку в указателе ошибки, который имеет NSError, а raise ожидает предка Exception.

Есть ли какой-то новый способ обработки ошибок HTTP в проектах RubyMotion?

Я не использую BW::HTTP, поскольку обнаружил, что он устарел.

Полученная ошибка:

data_parser.rb:7:in `parse:': exception class/object expected (TypeError)

Один из кодов не работает таким образом:

class DataParser
  def self.parse(url)
    error_ptr = Pointer.new(:object)
    data = NSData.alloc.initWithContentsOfURL(NSURL.URLWithString(url), options:NSDataReadingUncached, error:error_ptr)
    unless data
      NSLog error_ptr[0].inspect
      raise error_ptr[0]
    end
    data
  end
end

person Mailo Světel    schedule 31.07.2016    source источник


Ответы (1)


Настоятельно рекомендуется использовать AFMotion: https://github.com/clayallsopp/afmotion.

person arashb31    schedule 31.07.2016
comment
Спасибо за рекомендацию. К сожалению, когда я следую руководству ( github.com/clayallsopp/AFMotion#install ), чтобы установить AFMotion Я получаю сообщение об ошибке (Невозможно найти спецификацию для AFMotion). Что вы делаете не так, как в руководстве? - person Mailo Světel; 02.08.2016
comment
попробуйте: gem install afmotion или добавьте его в свой Gemfile - person arashb31; 03.08.2016
comment
Это то, что говорит руководство, и, как я уже говорил, руководство не работает для меня. - person Mailo Světel; 03.08.2016
comment
Теперь это работает, так что я думаю, что какой-то сервер просто упал, тай - person Mailo Světel; 09.08.2016