无法将 '[String : AnyObject]?.Type' 类型(又名 'Optional<Dictionary<String, AnyObject>>.Type)的值转

Posted

技术标签:

【中文标题】无法将 \'[String : AnyObject]?.Type\' 类型(又名 \'Optional<Dictionary<String, AnyObject>>.Type)的值转换为预期的参数类型【英文标题】:Cannot convert value of type '[String : AnyObject]?.Type' (aka 'Optional<Dictionary<String, AnyObject>>.Type) to expected argument type无法将 '[String : AnyObject]?.Type' 类型(又名 'Optional<Dictionary<String, AnyObject>>.Type)的值转换为预期的参数类型 【发布时间】:2015-09-25 12:28:57 【问题描述】:

size = text.boundingRectWithSize 上收到此错误

无法转换 '[String : AnyObject]?.Type' 类型的值(又名 '可选>.Type) 到预期的参数 键入'[String : AnyObject]?'

func heightOfString(text: NSString!, width: CGFloat, font: UIFont) -> CGFloat
    var ch:CGFloat!
    var size:CGSize = CGSizeMake(width, CGFloat.max)

    var tdic:NSDictionary = NSDictionary(objects: [font, NSFontAttributeName], forKeys: [])
    size = text.boundingRectWithSize(size, options: NSStringDrawingOptions.UsesFontLeading , attributes: [String : AnyObject]?, context: nil).size
    ch = size.height
    return ch


【问题讨论】:

【参考方案1】:

如果您需要为属性传递一个空字典,请使用[:]

size = text.boundingRectWithSize(size, options: NSStringDrawingOptions.UsesFontLeading , attributes: [:], context: nil).size

【讨论】:

也可以传入 nil。

以上是关于无法将 '[String : AnyObject]?.Type' 类型(又名 'Optional<Dictionary<String, AnyObject>>.Type)的值转的主要内容,如果未能解决你的问题,请参考以下文章

无法将 String 类型的值分配给 AnyObject 类型?斯威夫特 3.0

Swift:无法将类型“[String:DayData]”的值转换为预期的参数类型“AnyObject?”

无法将“NSMutableDictionary”类型的值转换为预期的参数类型“[String: AnyObject]?”

无法将类型 [NSObject : AnyObject] 转换为字符串

无法转换类型“[String : AnyObject]?”的值到预期的参数类型“[NSAttributedStringKey:Any]?”

尝试保存数组,出现错误 - 无法将类型“[Data]”的值转换为预期的参数类型“[Dictionary<String, AnyObject>]”