如何用swift语法编写这个objective-c块?

时间:2014-12-08 21:59:24

标签: ios objective-c swift objective-c-blocks

我最近从使用Objective-C切换到Swift,现在我正面临以下 objective-c 块。 我无法弄清楚如何用 Swift(1.2)语法编写它。 这就是在objective-c中定义块的方式:

formatter = ^(CGFloat value){

            // do something with value

            return "stringrepresentation";
        };

有人可以帮助我并告诉我正确的语法吗?

附加信息:“格式化程序”值必须为ValueFormatter

类型

如何实现这一目标?

3 个答案:

答案 0 :(得分:3)

看起来像这样:

let formatter = { (value: CGFloat) -> String in
    // do something with value
    return "the formatted thing"
}

formatter的类型为(CGFloat) -> String

答案 1 :(得分:2)

看看closures

{(/*Parameters*/) -> /*ReturnType*/ in
    // Statements
}

所以这个块将是:

{(value : CGFloat) -> String in
    // Do cool stuff
    retun "aString"
}

答案 2 :(得分:0)

SWIFT 2

阻止声明

var myCallBack:((Bool)->Void)? = nil

阻止发回

  self.myCallBack!(true)

阻止接收

myCallBack = { (isSuccess: Bool)-> () in
          //perform action you want to      
            }