我正在将我的 Objective-c 代码转换为 swift 2,我收到以下错误:
二元运算符“&”不能应用于“UIFontDescriptorSymbolicTraits”和“UInt32”类型的操作数
二元运算符'|' 不能应用于“UIFontDescriptorSymbolicTraits”和“UInt32”类型的操作数
这是我的代码: if { ... else {
func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UInt32, ...) {
var currentAttributesDict : NSDictionary = self.textView.textStorage.attributesAtIndex(selectedRange.location, effectiveRange: nil)
var currentFont : UIFont = currentAttributesDict .objectForKey(NSFontAttributeName) as! UIFont
var fontDescriptor : UIFontDescriptor = currentFont.fontDescriptor()
var fontNameAttribute : NSString = fontDescriptor.objectForKey(UIFontDescriptorNameAttribute) as! NSString
var changedFontDescriptor : UIFontDescriptor
if (fontNameAttribute.rangeOfString(traitName).location == NSNotFound){
var existingTraitsWithNewTrait : UIFontDescriptorSymbolicTraits = fontDescriptor.symbolicTraits | traitValue
changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait)
} else {
var existingTraitsWithNewTrait : UIFontDescriptorSymbolicTraits = fontDescriptor.symbolicTraits & ~traitValue
changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait)
}
...
}
我尝试使用“traitValue:UIFontDescriptorSymbolicTraits”作为参数“traitvalue”
func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UIFontDescriptorSymbolicTraits, ...)
现在错误是
二元运算符'|' 不能应用于两个“UIFontDescriptorSymbolicTraits”操作数
一元运算符“~”不能应用于“UIFontDescriptorSymbolicTraits”类型的操作数
此错误已在此处发布,但对我没有解决方案。它让我疯狂...:-(