Seu RubyMotion AppDelegate precisa de um acessador @window

Eu vi muitos códigos para AppDelegateclasses em RubyMotion que se parecem muito com isto:

class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.rootViewController = UIViewController.new // ...
@window.makeKeyAndVisible
true
end
end

Mas há um pequeno erro neste código. É pequeno, mas ainda está lá e é relativamente difundido também .

O que há de errado com isso? Dê uma olhada na documentação da Apple para UIApplicationDelegate:

janela

Se desejar fornecer uma janela customizada para seu aplicativo, você deve implementar o método getter desta propriedade e usá-lo para criar e retornar sua janela customizada.

Como corrigi-lo? Simples:

class AppDelegate
attr_reader
:window

def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.rootViewController = UIViewController.new // ...
@window.makeKeyAndVisible
end
end

Isso é pedante? Absolutamente! Mas eu estava coçando minha cabeça tentando usar o CocoaPod MRProgress, e isso depende da janela que está sendo implementada .