2014-02-13 113 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方法,你接受下面的參數,framebgcolortext在您text參數假設是一個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