2013-08-31 63 views
0

我正在開發一個Rubymotion應用程序。我正在使用pod KNSemiModalViewController。 如何將這個Objective-C代碼「翻譯」成ruby?將objective-c轉換爲ruby

[self presentSemiViewController:semiVC withOptions:@{ 
    KNSemiModalOptionKeys.pushParentBack : @(YES), 
    KNSemiModalOptionKeys.animationDuration : @(0.3), 
    KNSemiModalOptionKeys.shadowOpacity  : @(0.8), 
    }]; 
+2

如果你會成功與可可/ OS X API,你首先需要了解Objective-C以便編寫一個應用程序(因爲所有的API和大多數例子都是用ObjC編寫的)..... – bbum

+0

是的,我差不多完成了應用程序。我只需要知道如何在Ruby中編寫上面的代碼。 –

回答

1
self.presentSemiViewController(semiVC, withOptions:{ 
    KNSemiModalOptionKeys.pushParentBack => true, 
    KNSemiModalOptionKeys.animationDuration => 0.3, 
    KNSemiModalOptionKeys.shadowOpacity => 0.8 
}) 
+0

好吧,這似乎並不幸運。我得到這個錯誤:終止應用程序由於未捕獲的異常'TypeError',原因:'無法識別的運行時類型'(TypeError) –

+0

我看到這個答案已被接受,儘管@Jonathan Clark報告似乎並沒有工作。也許這會工作:'self.presentSemiViewController(semiVC,withOptions: - > {KNSemiModalOptionKeys.pushParentBack = true,KNSemiModalOptionKeys.animationDuration = 0.3,KNSemiModalOptionKeys.shadowOpacity = 0.8})' –

2

你必須制定出自己的東西了Ruby的一面,但是這行代碼:

[self presentSemiViewController:semiVC withOptions:@{ 
    KNSemiModalOptionKeys.pushParentBack : @(YES), 
    KNSemiModalOptionKeys.animationDuration : @(0.3), 
    KNSemiModalOptionKeys.shadowOpacity  : @(0.8), 
    }]; 

是一樣的:

NSDictionary *dict = [NSDictionary, dictionaryWithObjectsAndKeys: 
    [NSNumber numberWithBOOL:YES], KNSemiModalOptionKeys.pushParentBack, 
    [NSNumber numberWithFloat:0.3], KNSemiModalOptionKeys.animationDuration, 
    [NSNumber numberWithFloat:08], KNSemiModalOptionKeys.shadowOpacity]; 

[self presentSemiViewController:semiVC withOptions:dict]; 

假設KNSemiModalOptionKeys.pushParentBack正在使用點符號來執行一個方法,其中每一個都可以被重寫爲[KNSemiModalOptionKeys pushParentBack]

希望能夠給你足夠的關於ObjC方面的信息來翻譯成Ruby(它非常擅長形成字典,IIRC)。

-2

我見過一個Sublime插件objc2rubymotion,從來沒有試過。

有基於其網頁http://objc2rubymotion.herokuapp.com

沒試過很好,但它可能會幫助Ruby開發者跌倒在iOS的環境和我一樣:)