【发布时间】:2014-06-14 21:07:16
【问题描述】:
在我的 UIFontExtension.swift 文件中,我收到一个 Swift 编译器错误,指出...
Value of optional type 'NSNumber' not unwrapped; did you mean to use '!' or '?'?
这个错误指向 w! 和 h! 在我最后有 cmets 的行上。
import Foundation
import UIKit
extension UIFont {
func sizeOfString (string: String, maxWidth w: CGFloat?, maxHeight h: CGFloat?) -> CGSize {
var width = w != nil ? w! : DBL_MAX // Error on this line
var height = h != nil ? h! : DBL_MAX // And on this line
var size = CGSize(width: width, height: height)
var options = NSStringDrawingOptions.UsesLineFragmentOrigin
var attributes = [NSFontAttributeName: self]
var nsstring = NSString(string: string)
return nsstring.boundingRectWithSize(size, options: options, attributes: attributes, context: nil).size
}
}
这只是一个错误吗?
【问题讨论】:
-
我的 Swift REPL 不会产生您所描述的错误。
-
有趣。如果您不使用本地别名(在函数中使用 maxWidth 和 maxHeight 而不是 w 和 h),是否仍然会发生这种情况?
标签: swift