我正在使用RubyMotion,BubbleWrap :: RSSParser和ProMotion。我的目标是使用BubbleWrap :: RSSParser读取一个RSS源,以流行一个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
时,哈希就会正确打印到控制台。
有谁知道为什么这不起作用?
答案 0 :(得分:0)
我认为这可能是因为RSSParser是一个异步请求。在请求完成之前,您可能会将@data
清空。
编辑:从BubbleWrap docs,您可以为解析器设置委托。像
这样的东西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