无法将类型 'UInt32!' 的值转换为预期的参数类型 'UIFontDescriptorSymbolicTraits'
Cannot convert value of type 'UInt32!' to expected argument type 'UIFontDescriptorSymbolicTraits'
我仍在尝试将 TextKit 从 Objective-C 转换为 Swift。它让我(和你?)发疯:-(
解决了一些问题后,现在我在使用粗体(和斜体)字体时遇到了问题:
func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UInt32, andRange selectedRange: NSRange) {
let currentAttributesDict : NSDictionary! = self.textView.textStorage.attributesAtIndex(selectedRange.location, effectiveRange: nil)
let currentFont : UIFont = currentAttributesDict .objectForKey(NSFontAttributeName) as! UIFont
...
var existingTraitsWithNewTrait : UInt32! = nil
var changedFontDescriptor : UIFontDescriptor! = nil
if fontNameAttribute.rangeOfString(traitName).location == NSNotFound {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue | traitValue
changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits.TraitBold)
} else {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue & ~traitValue
changedFontDescriptor =
fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait) // !!!!
}
在最后一行我得到了错误
无法将类型 'UInt32!' 的值转换为预期的参数类型 'UIFontDescriptorSymbolicTraits'
我必须将 UInt32 转换为 UIFontDescriptorSymbolicTraits 吗?另一种方法是使用 .rawValue。但我不知道,该怎么做。 :-(
欢迎任何帮助!
尝试用 UIFontDescriptorSymbolicTraits(rawValue: existingTraitsWithNewTrait)
代替错误行中的 existingTraitsWithNewTrait
。
我仍在尝试将 TextKit 从 Objective-C 转换为 Swift。它让我(和你?)发疯:-( 解决了一些问题后,现在我在使用粗体(和斜体)字体时遇到了问题:
func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UInt32, andRange selectedRange: NSRange) {
let currentAttributesDict : NSDictionary! = self.textView.textStorage.attributesAtIndex(selectedRange.location, effectiveRange: nil)
let currentFont : UIFont = currentAttributesDict .objectForKey(NSFontAttributeName) as! UIFont
...
var existingTraitsWithNewTrait : UInt32! = nil
var changedFontDescriptor : UIFontDescriptor! = nil
if fontNameAttribute.rangeOfString(traitName).location == NSNotFound {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue | traitValue
changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits.TraitBold)
} else {
existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue & ~traitValue
changedFontDescriptor =
fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait) // !!!!
}
在最后一行我得到了错误 无法将类型 'UInt32!' 的值转换为预期的参数类型 'UIFontDescriptorSymbolicTraits'
我必须将 UInt32 转换为 UIFontDescriptorSymbolicTraits 吗?另一种方法是使用 .rawValue。但我不知道,该怎么做。 :-(
欢迎任何帮助!
尝试用 UIFontDescriptorSymbolicTraits(rawValue: existingTraitsWithNewTrait)
代替错误行中的 existingTraitsWithNewTrait
。