我试图在Swift中传递NSLineBreakMode的多个选项。在目标C中,这起作用:

label.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;

参考this,我尝试在如下常量中设置选项:
var lineBreakOptions: NSLineBreakMode = [.ByWordWrapping,.ByTruncatingTail]
passageExcerpt.lineBreakMode = lineBreakOptions

但我得到的一个错误是:
上下文类型“NSLineBreakMode”不能与数组文本一起使用。
是否有方法为NSLineBreakMode的枚举传递多个选项?

最佳答案

NSLineBreakModeenum类型,而不是OptionSet类型(即使在Objective-C中)。只能指定一个案例。
在Objective-C中

 NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail

可以,但它只通过“或”原始值0和4将模式设置为NSLineBreakByTruncatingTail,请选中
NSLog(@"%ld", NSLineBreakByWordWrapping); // 0
NSLog(@"%ld", NSLineBreakByTruncatingTail); // 4
NSLog(@"%ld", NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail); // 4

所以Swift等价物是
label.lineBreakMode = .ByTruncatingTail

10-06 10:00