将 Objective-C 块转换为 Swift 块
Convert Objective-C block to Swift block
我想将此 Objective-C 代码转换为 Swift。
pieView.layer.transformTitleBlock = ^(PieElement* elem, float percent){
return [(MyPieElement*)elem title];
};
我在 Swift 中写了这段代码:
pieView.layer.transformTitleBlock = {(elem:PieElement!,percent:Float) -> String in
//your stuff
return MyPieElement(elem.title);
}
但这对我不起作用;请帮忙
谢谢。
你误解了演员表。
[(MyPieElement*)elem title];
在Objective-C中相当于:
(elem as MyPieElement).title
在 Swift.
您应该return 字符串值而不是 MyPieElement 对象。
试试它是否适合我:
pieView.layer.transformTitleBlock = {
elem, percent in
return elem.title
}
闭包的 return 值是 String
,但您 return 是 MyPieElement
的实例。我怀疑这就是你想要做的:
pieView.layer.transformTitleBlock = {(elem: PieElement!, percent:Float) -> String in
return elem.title
}
我想将此 Objective-C 代码转换为 Swift。
pieView.layer.transformTitleBlock = ^(PieElement* elem, float percent){
return [(MyPieElement*)elem title];
};
我在 Swift 中写了这段代码:
pieView.layer.transformTitleBlock = {(elem:PieElement!,percent:Float) -> String in
//your stuff
return MyPieElement(elem.title);
}
但这对我不起作用;请帮忙
谢谢。
你误解了演员表。
[(MyPieElement*)elem title];
在Objective-C中相当于:
(elem as MyPieElement).title
在 Swift.
您应该return 字符串值而不是 MyPieElement 对象。 试试它是否适合我:
pieView.layer.transformTitleBlock = {
elem, percent in
return elem.title
}
闭包的 return 值是 String
,但您 return 是 MyPieElement
的实例。我怀疑这就是你想要做的:
pieView.layer.transformTitleBlock = {(elem: PieElement!, percent:Float) -> String in
return elem.title
}