创建NSAttributedString时未检测到崩溃

时间:2017-10-16 19:47:22

标签: ios swift xcode nsattributedstring

我添加了一个返回属性字符串的属性字符串方法时出现崩溃,崩溃是:

-[_SwiftValue count]: unrecognized selector sent to instance

这是我的代码:

func attributedTextForTitle(name: String, indexPath: IndexPath) -> NSAttributedString {

    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = NSTextAlignment.right

    let nameIndexPath = String(indexPath.row + 1)
    let attStringText = "\(nameIndexPath). \(name)"

    let multipleAttributes: [String : Any] = [
        NSForegroundColorAttributeName: UIColor.white,
        NSFontAttributeName: UIFont(name: "Alef-Bold", size: 16.0)!,
        NSParagraphStyleAttributeName : paragraphStyle,
        NSWritingDirectionAttributeName : NSWritingDirection.rightToLeft
    ]

    return NSAttributedString(string: attStringText, attributes: multipleAttributes)
}

有人可以识别出似乎是什么问题吗?另外,在没有问题的情况下,我怎样才能在下一次自己找出问题;)

1 个答案:

答案 0 :(得分:1)

我把它放在操场上,看看错误来自哪里很有趣。事实证明,您创建'multipleAttributes'的行就是问题所在。具体做法是:

UIFont(name: "Alef-Bold", size: 16.0)

这是返回nil并最终使函数抛出那个奇怪的错误。

我将该行拉出来,然后在将其抛入multipleAttributes数组之前进行一些错误检查。