在Swift

时间:2016-04-04 20:07:14

标签: ios swift memory-leaks uilabel nsattributedstring

当我在视图中的2个标签上设置attributedText参数时,我发现仪器报告了一个奇怪的内存泄漏。

如果我只在一个标签上设置属性文本,我就不会出现内存泄漏。 此外,如果标签是多行标签,这似乎只会泄漏。

为了复制这个,我在故事板视图控制器上放了2个标签,连接了IBOutlets,并使用了以下代码:

class ViewController: UIViewController
{
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var label2: UILabel!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.alignment = .Natural
        paragraphStyle.lineHeightMultiple = 1.0
        paragraphStyle.lineBreakMode = .ByWordWrapping

        let attributes = [
            NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 15.0)!,
            NSForegroundColorAttributeName: UIColor.blackColor(),
            NSKernAttributeName: 0.4,
            NSParagraphStyleAttributeName: paragraphStyle,
            NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleNone.rawValue
        ]

        self.label.attributedText = NSAttributedString(string: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", attributes: attributes)
        self.label2.attributedText = NSAttributedString(string: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", attributes: attributes)
    }
}

仪器报告泄漏的屏幕截图: Instruments reported leaks

这里是[示例项目] [2]的链接。

任何想法可能是什么问题?

0 个答案:

没有答案