2015-10-12 5 views
0

Я переношу код с XCode 6.4 на 7, и эта ошибка не кажется разрешимой.Невозможно вызвать инициализатор для типа NSAttributedString со списком аргументов типа (строка: String, attributes: [NSObject: AnyObject]?)

func onHoldReasonAttributedTextSetup(onHoldReson : String) -> NSMutableAttributedString 
{ 

    let markerFontAttributes : [NSObject : AnyObject]? = [ 
     NSFontAttributeName : UIFont(name: "HelveticaNeue", size: 12.0)!, 
     NSForegroundColorAttributeName : UIColor(red: 0/255, green: 152/255, blue: 204/255, alpha: 1.0) 
    ] 
    let onHoldText = NSAttributedString(string: "On Hold: ", attributes: markerFontAttributes) 
    let onHoldReasonText = NSAttributedString(string:onHoldReson) 
    var string = NSMutableAttributedString() 
    string.appendAttributedString(onHoldText) 
    string.appendAttributedString(onHoldReasonText) 
    return string 
} 
+0

использовать как 'пусть markerFontAttributes = [ NSFontAttributeName: UIFont (название: "HelveticaNeue", размер: 12,0) !, NSForegroundColorAttributeName: UIColor (красный: 0/255, зеленый: 152/255, синий: 204/255 , alpha: 1.0) ] ' –

ответ

1

Вы должны изменить эту строку:

let markerFontAttributes : [NSObject : AnyObject]? = [ 
     NSFontAttributeName : UIFont(name: "HelveticaNeue", size: 12.0)!, 
     NSForegroundColorAttributeName : UIColor(red: 0/255, green: 152/255, blue: 204/255, alpha: 1.0) 
    ] 

к

let markerFontAttributes : [String : AnyObject]? = [ 
     NSFontAttributeName : UIFont(name: "HelveticaNeue", size: 12.0)!, 
     NSForegroundColorAttributeName : UIColor(red: 0/255, green: 152/255, blue: 204/255, alpha: 1.0) 
    ] 

Поскольку инициализатора ожидает приписывали словарь в формате [String : AnyObject]?:

init(string str: String, attributes attrs: [String : AnyObject]?) 

Артикул: NSAttributedString Class Reference

+1

Вы также полностью отбрасываете объявление типа, Swift 2 должен правильно выводить тип. – Moritz

+0

@ EricD. Да вы правы. В этом случае нет необходимости указывать тип –

Смежные вопросы