0

Rubymotion アプリを開発しています。ポッド KNSemiModalViewController を使用しています。この Objective-C コードを Ruby に「変換」するにはどうすればよいですか?

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

3 に答える 3

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 に変換できるようになることを願っています (Ruby は、辞書 (IIRC) の作成に非常に長けています)。

于 2013-09-01T01:01:13.363 に答える
1
self.presentSemiViewController(semiVC, withOptions:{
  KNSemiModalOptionKeys.pushParentBack => true,
  KNSemiModalOptionKeys.animationDuration => 0.3,
  KNSemiModalOptionKeys.shadowOpacity => 0.8
})
于 2013-09-01T12:30:04.457 に答える
-2

Sublime プラグイン objc2rubymotion を見たことがありますが、試したことはありません。

それに基づく Web ページがありますhttp://objc2rubymotion.herokuapp.com

試したことはありませんが、私のようなiOS環境でルビストが落ちるのを助けるかもしれません:)

于 2013-09-29T09:01:41.103 に答える