想知道是否有人遇到或遇到过这个问题,我只是运行了使用RubyMotion生成的默认测试' rake spec
describe "Application 'UIAlert'" do
before do
@app = UIApplication.sharedApplication
end
it "has one window" do
@app.windows.size.should == 1
end
end
失败并出现此错误:
Application 'UIAlert'
- has one window [FAILED - 2.==(1) failed]
Bacon::Error: 2.==(1) failed
spec.rb:769:in `satisfy:': Application 'UIAlert' - has one window
spec.rb:783:in `method_missing:'
spec.rb:316:in `block in run_spec_block'
spec.rb:459:in `execute_block'
spec.rb:316:in `run_spec_block'
spec.rb:331:in `run'
我不确定我的应用程序怎么可能有多个窗口,我错过了什么? :(
答案 0 :(得分:1)
您使用的是iOS8 SDK吗? iOS8引入了UITextEffectsWindow - 这是在应用程序窗口之外创建的,所以@ app.windows.size == 2而不是1.您可以通过运行应用程序并在REPL中查看2个窗口对象来检查这一点。
(main)> UIApplication.sharedApplication.windows[0]
=> #<UIWindow:0x11280d700>
(main)> UIApplication.sharedApplication.windows[1]
=> #<UITextEffectsWindow:0x10b6127a0>
我建议将默认规范修改为测试应用程序窗口具有默认rootViewController的规范。