BubbleWrap RSSParser для TableView

Я использую RubyMotion, BubbleWrap::RSSParser и ProMotion. Моя цель - прочитать RSS-ленту с BubbleWrap:: RSSParser для популярного TableView.

У меня есть следующие настройки:

def on_init
  @data = []
end

def table_data
  [{
    title: "",
    cells: @data
  }]
end

def on_load
  @data = []
  feed = BW::RSSParser.new("URL")
  feed.parse do |item|
    @data << item.to_hash
  end
  @data
end

По какой-то причине @data массив nil, но, когда я делаю p item.to_hash хеш правильно выводится на консоль.

Кто-нибудь знает, почему это не работает?

1 ответ

Решение

Я думаю, что это может быть потому, что RSSParser является асинхронным запросом. Вы, вероятно, вернетесь @data пусто, до завершения запроса.

РЕДАКТИРОВАТЬ: Из документов BubbleWrap, вы можете установить делегат для анализатора. Что-то вроде

feed_parser = BW::RSSParser.new("http://feeds.feedburner.com/sdrbpodcast")
feed_parser.delegate = self 
feed_parser.parse do |item|
  @data << item.to_hash
end

def when_parser_is_done
  table_data
end
Другие вопросы по тегам