促销/气泡包装TableScreen数据

时间:2013-07-30 06:56:10

标签: rubymotion

我坚持这个:

我需要将数据填充到我的应用中。

我第一次使用促销活动....

没有ProMotion我用来获取init方法中的数据

现在我的代码如下所示:

class Parties < ProMotion::TableScreen
  attr_accessor :_cells
  @news = []
  include MyUiModules
  title 'Yazarlar'
  refreshable callback: :on_refresh,
     pull_message: "Pull to refresh",
     refreshing: "Refreshing data…",
     updated_format: "Last updated at %s",
     updated_time_format: "%l:%M %p"
 def on_refresh
   #MyItems.pull_from_server do |items|
   #@my_items = items
   end_refreshing
   #update_table_data
   # end
 end

 def table_data
   _cells = []
   [{
     title: nil,
     cells: create_cells(_cells)
   }]            
 end
 def will_appear
    Barbutton.create_bar(self)
    set_attributes self.view, {
      backgroundColor: hex_color("DBDBDB")
    }        
  end

  def go_to_next
    App.delegate.slide_menu.show_menu    
  end

  def create_cells(_cells)

   BW::HTTP.get(URL) do |response|
     json = BW::JSON.parse response.body.to_str
     for line in json
       _cells << { title: line["val_for_title"]}
     end
   end
   _cells
  end
end  

不幸的是,这确实会返回一个空数组,我无法弄清楚如何解决它。 谢谢你的帮助

1 个答案:

答案 0 :(得分:3)

你不能这样做,因为BW :: HTTP.get是异步的!

而是尝试这样的事情:

def on_init
  @data = []
end

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

def on_refresh
  BW::HTTP.get(URL) do |response|
    @data = []
    json = BW::JSON.parse(response.body.to_str)
    json.each do |hash|
      @data << { title: hash["val_for_title"]}
    end
    update_table_data
    end_refreshing
  end
end

希望它有所帮助: - )