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