2013-08-31 3 views
0

Я разрабатываю приложение Rubymotion. Я использую pod KNSemiModalViewController. Как я могу «перевести» этот код Objective-C в ruby?Перевести объектив-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

Вы должны работать на стороне Рубиновый вещей самостоятельно, но эта строка кода:

[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

Я видел возвышенный плагин objc2rubymotion, никогда не пробовал.

Существует веб-страница на его основе http://objc2rubymotion.herokuapp.com

Никогда не пробовал, как хорошо, но это может помочь Рубисты падение в среде IOS, как я :)

Смежные вопросы