将objective-c翻译成红宝石

时间:2013-08-31 22:16:23

标签: objective-c rubymotion

我正在开发一个Rubymotion应用程序。我正在使用pod KNSemiModalViewController。 如何将这个Objective-C代码“翻译”成ruby?

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

3 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:1)

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

答案 2 :(得分:-2)

我见过一个Sublime插件objc2rubymotion,从未尝试过。

有一个基于它的网页http://objc2rubymotion.herokuapp.com

从未尝试过,但它可能会帮助rubyists像我一样在iOS环境中崩溃:)