我正在開發一個針對iOS> = 7的Xcode 6.1中的Swift應用程序,因爲它沒有解決,所以無法使用NSStringDrawingUsesLineFragmentOrigin。我用Google搜索了它,但我找到的所有例子都是使用它的,顯然沒有問題。目前蘋果網站上的文檔顯示它是有效的。有沒有人遇到/解決了同樣的問題?NSStringDrawingUsesLineFragmentOrigin無法解析?
編輯︰ 我已經得到它與NSStringDrawingOptions.UsesLineFragmentOrigin(謝謝馬特),我昨天試過,但它只適用於目標上下文設置爲零。昨天,當我傳遞一個有效的上下文時,我在「選項」中傳遞的任何內容都顯示爲未解決。奇怪的是,今天如果我傳遞一個有效的上下文,編譯器會給我一個不同的錯誤 - 「我的字體屬性上的NSString與NSObject不同」!我想知道這是否只是Swift編譯器中的一個古怪的錯誤?總之,這裏的最終編譯的代碼:
var textStyle = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as NSMutableParagraphStyle
textStyle.alignment = NSTextAlignment.Left
let fontAttributes = [
NSFontAttributeName: UIFont(name: "Georgia", size: tileSize * CLUES_FONT_SCALE)!,
NSForegroundColorAttributeName: UIColor.blackColor(),
NSParagraphStyleAttributeName: textStyle
]
size = text.boundingRectWithSize(
CGSize(width: width, height: 1000),
options: NSStringDrawingOptions.UsesLineFragmentOrigin,
attributes: fontAttributes,
context: nil
)
需要注意的是,如果我更換:
NSStringDrawingOptions.UsesLineFragmentOrigin
用在蘋果的文檔顯示
NSStringDrawingUsesLineFragmentOrigin
,我得到「利用未解決標識符」。
你得到了什麼錯誤,完全可以發佈一個小的完整複製?我剛剛在Playground中輸入了一些代碼,可以很好地編譯它。然後我將它粘貼到我正在開發的實際應用程序中,並且它仍然編譯並鏈接正常。但我有點在黑暗中磕磕絆絆,除非你能告訴我什麼是你的失敗...... – 2014-12-04 08:04:06
我會[報告](https://bugreport.apple.com)誤導性的錯誤信息作爲編譯器錯誤。 Swift中有很多特定的類型,其中一個不正確的參數值導致一個錯誤,這個錯誤表面上與另一個非常好的參數有關。 (另外,如果你現在已經解決了你的問題,你應該把它作爲你自己問題的答案並接受它。) – 2014-12-05 10:39:44