- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在试用 Rubymotion,但似乎无法弄清楚如何完成看似简单的任务。
我已经为人员目录设置了一个 UITableView。我创建了一个返回 json 的 Rails 后端。
Person 模型定义了一个 get_people 类方法:
def self.get_people
BubbleWrap::HTTP.get("http://myapp.com/api.json") do |response|
@people = BW::JSON.parse(response.body.to_str)
# p @people prints [{"id"=>10, "name"=>"Sam"}, {etc}] to the console
end
end
在 directory_controller 中,我只想将 @data 的实例变量设置为端点返回的数组,以便我可以填充 TableView 。
我正在尝试在 viewDidLoad 中执行 @data = Person.get_people
,但收到一条错误消息,指示正在传递 BW 响应对象:未定义的方法
#BubbleWrap::HTTP::Query:0x8d04650 ...> (NoMethodError)`
因此,如果我在 BW 响应 block 之后将我的数组硬编码到 get_people 方法中,一切正常。但是我发现我也无法通过 BW 响应 block 的关闭来持久化实例变量。
def self.get_people
BubbleWrap::HTTP.get("http://myapp.com/api.json") do |response|
@people = BW::JSON.parse(response.body.to_str)
end
p @people #prints nil to the console
# hard coding [{"id"=>10, "name"=>"Sam"}, {etc}] here puts my data in the table view correctly
end
我在这里错过了什么?我如何从 bubblewrap 的响应对象中获取这些数据并以可用的形式传递给我的 Controller ?
最佳答案
正如 BW 文档“BW::HTTP 包装 NSURLRequest、NSURLConnection 和 friend ,为 Ruby 开发人员提供更熟悉和更易于使用的 API 中所解释的那样。API 使用异步调用和 block 来保持尽可能简单。”
由于调用的异步性质,在您的第二个片段中,您在实际更新它之前打印了@people。正确的方法是在解析结束后将新数据传递给 UI(例如 @table.reloadData() 如果 @people 数组应该显示在 UITableView 中)。
这是一个例子:
def get_people
BubbleWrap::HTTP.get("http://myapp.com/api.json") do |response|
@people = BW::JSON.parse(response.body.to_str)
update_result()
end
end
def update_result()
p @people
# do stuff with the updated content in @people
end
在 RubyMotion async programming with BubbleWrap 找到一个更复杂的用例和更详尽的解释
关于ruby - Bubblewrap HTTP -> TableView ;方法返回 bubblewrap 查询而不是响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831669/
我正在试用 Rubymotion,但似乎无法弄清楚如何完成看似简单的任务。 我已经为人员目录设置了一个 UITableView。我创建了一个返回 json 的 Rails 后端。 Person 模型定
我想使用 BubbleWrap CLI 构建 TWA 当我尝试使用 bubblewrap build 构建我的应用程序时 | |) /_,--.,--| |-.| |-.| |,---.,--
我正在使用最新版本的 Rubymotion 构建一个 iOS 应用程序。 我有一个表格 View ,我想用来自远程 API 的数据填充。 我将 Controller 命名为:ProjectsContr
当使用大量异步代码时,我对如何编写像样的代码感到困惑。 在下面的代码片段中,我登录以获取身份验证 cookie 并将该 cookie 用于下一个请求以获取项目名称列表(作为示例): def self.
在我的 Rails 应用程序中,我使用 Paperclip 上传照片并将它们存储在 S3 中。所以我想将该功能引入我的 iOS 应用程序。我使用 this gist 将图像上传到我的 RubyMoti
我是 Linux 和 OCAML 的新手。我认为让 OCaml 在 Windows 上运行并非易事。我找到了这个链接: https://www.cs.umd.edu/class/spring2018/
我是一名优秀的程序员,十分优秀!