RubyMotion:'名称错误'

时间:2014-02-13 06:02:47

标签: 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 个答案:

答案 0 :(得分:1)

在您的setup_label方法中,您接受以下参数framebgcolortext,其中text参数假设为字符串对象

因此,您的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