2014-02-13 3 views
0

Есть ошибки следующим образом:RubyMotion: 'Ошибка имени'

Terminating app due to uncaught exception 'NameError', reason: 'weather_controller.rb:3:in `viewDidLoad': uninitialized constant WeatherController::Name (NameError) 

AppDelegate:

class AppDelegate 

def application(application, didFinishLaunchingWithOptions:launchOptions) 

    puts "Hello! You just launched: #{App.name}, \n location: (#{App.documents_path})" 
    @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds) 

    @window.backgroundColor = UIColor.lightGrayColor 
    @window.rootViewController = MyController.alloc.init 
    @window.makeKeyAndVisible 

    true 
end 
end 

my_controller.rb:

class MyController < UIViewController 
def viewDidLoad 
    @name_label = setup_label [[10, 10], [300, 50]], UIColor.orangeColor, Name 
    @place_label = setup_label [[10, 80], [300, 50]], UIColor.yellowColor, Place 
    @temp_label = setup_label [[10, 150], [300, 50]], UIColor.greenColor, Temperature 
end 

def setup_label frame, bgcolor, text 
    label = UILabel.alloc.initWithFrame(frame) 
    label.textColor = UIColor.darkGrayColor 
    label.backgroundColor = bgcolor 
    label.textAlignment = UITextAlignmentCenter 
    label.text = text.to_s 

    view.addSubview label 
    label 
end 
end 

Любые идеи? Заранее спасибо

ответ

1

В вашем методе setup_label, вы принимаете следующие аргументы, frame, bgcolor и texttext, где ваш аргумент, предполагают, чтобы быть объектом типа String.

Таким образом, ваш метод viewDidLoad должен быть следующим

def viewDidLoad 
    @name_label = setup_label [[10, 10], [300, 50]], UIColor.orangeColor, "Name" 
    @place_label = setup_label [[10, 80], [300, 50]], UIColor.yellowColor, "Place" 
    @temp_label = setup_label [[10, 150], [300, 50]], UIColor.greenColor, "Temperature" 
end