向UIView添加渐变会导致错误

时间:2013-02-13 03:29:54

标签: objective-c rubymotion

我正在使用RubyMotion。我在终端中看到的错误消息是:

  耙子流产了!命令失败,状态为(1):   [DYLD_FRAMEWORK_PATH =“/应用/ Xcode.a ...]   /Library/RubyMotion/lib/motion/project.rb:101:in block in <top (required)>' /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in eval'   /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in   ''任务:TOP =&gt;默认=&gt;模拟器

因此错误发生在RubyMotion本身创建的文件中,而不是我的文件之一。显然我仍然有过错。我找到了似乎触发错误的行。这是创建UIView和渐变的UIViewController子类的相关代码:

def loadView

    button1 = UIView.alloc.initWithFrame(CGRect.make(x:0, y:55, width:100, height:40))
    gradientLayer = CAGradientLayer.layer
    gradientLayer.colors = NSArray.arrayWithObjects(UIColor.redColor.CGColor, UIColor.greenColor.CGColor, UIColor.blackColor.CGColor, nil)

虽然后来会有更多代码,但我发现导致错误的gradientLayer.colors行。如果我在loadView中注释掉该行及其后面的所有内容,则不会发生错误。知道问题是什么吗?

1 个答案:

答案 0 :(得分:1)

我以前在使用NSArray创建数组时遇到了麻烦。试试这个:

def loadView
  button1 = UIView.alloc.initWithFrame(CGRect.make(x:0, y:55, width:100, height:40))
  gradientLayer = CAGradientLayer.layer
  gradientLayer.colors = [ UIColor.redColor.CGColor, UIColor.greenColor.CGColor, UIColor.blackColor.CGColor ]
  # ...
end