2013-02-13 1 views
0

RubyMotion을 사용하고 있습니다. 터미널에 표시되는 오류 메시지는 다음과 같습니다.UIView에 그라데이션을 추가하면 오류가 발생합니다.

레이크가 중단되었습니다. 명령이 상태 (1)로 실패했습니다 : [DYLD_FRAMEWORK_PATH = "/ Applications/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 => 기본 => 시뮬레이터

그래서 오류가 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에 주석 처리하면 오류가 발생하지 않습니다. 문제가 뭔지 아십니까?

+0

"rake aborted"줄 위에 오류가 없습니까? 'CGRect.make'는 어디에서 왔는가 (나를 위해, NoMethodError를 사용하려고 할 때) - CGRectMake (0, 55, 100, 40)를 대신 사용해 보았습니까? 이 라이브러리와 함께 제 3 자 라이브러리를 사용하고 있습니까? –

+1

다음을 시도해보십시오 :'gradientLayer.colors = [UIColor.redColor.CGColor, UIColor.greenColor.CGColor, UIColor.blackColor.CGColor]' –

+1

@JamonHolmgren - 그게 다야! 물론 배열을 만드는 훨씬 좋은 방법입니다. 의견으로 답글을 게시하려면 솔루션으로 표시해 드리겠습니다. – maxedison

답변

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