2016-03-15 179 views
0

I'm仍試圖從TextKit Objective-C的轉換爲斯威夫特。 (?和你)這讓我發瘋:-( 修復了一些問題後,現在i'm具有大膽(斜體)字體麻煩:無法轉換類型'UInt32!'的值預期參數類型「UIFontDescriptorSymbolicTraits」

enter image description here

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。但我不知道,該怎麼辦這個。:-(

歡迎任何幫助!

+0

請停止添加不適當的標籤。這個問題是關於Swift代碼的問題。這個問題不是關於Objective-C的問題。 – rmaddy

+0

@rmaddy:有做我使用的Objective-C? –

回答

1

嘗試UIFontDescriptorSymbolicTraits(rawValue: existingTraitsWithNewTrait)代替existingTraitsWithNewTrait錯誤線。

+0

嘿普拉迪普,that's它,我underdtand它;-) 非常感謝! –

相關問題