如何将Objective-c块转换为Ruby?

 陀飞轮小朱朱 发布于 2023-02-12 18:55

我正在使用Rubymotion构建一个iOS应用程序.我需要将一段Objective-c代码"转换"为Ruby.它是否正确?

最初是在Objective-c

[movieWriter setCompletionBlock:^{
          [filter removeTarget:movieWriter];
          [movieWriter finishRecording];
      }];

Ruby中的相同内容?:

  movieWriter(setCompletionBlock:-> { filter.removeTarget(movieWriter) }, { movieWriter.finishRecording })

Chuck.. 7

不.Ruby中的消息发送语法不是,object(message:arguments)并且块中有多个语句的语法不是{statement1} {statement2}.相反,你想要这样的东西:

movieWriter.completionBlock = lambda do
  filter.removeTarget(movieWriter)
  movieWriter.finishRecording
end

(RubyMotion将setter completionBlock=转换为适当的setCompletionBlock:方法.如果你想使用显式setter方法,它看起来就像movieWriter.setCompletionBlock(lambda do …).)

1 个回答
  • 不.Ruby中的消息发送语法不是,object(message:arguments)并且块中有多个语句的语法不是{statement1} {statement2}.相反,你想要这样的东西:

    movieWriter.completionBlock = lambda do
      filter.removeTarget(movieWriter)
      movieWriter.finishRecording
    end
    

    (RubyMotion将setter completionBlock=转换为适当的setCompletionBlock:方法.如果你想使用显式setter方法,它看起来就像movieWriter.setCompletionBlock(lambda do …).)

    2023-02-12 18:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有