iOS - 如何减少或释放绘制Unicode表情符号的内存占用?

iOS - How to reduce or release memory usage of drawing Unicode emoji?

关于以下代码:

  @IBOutlet weak var textView: UITextView!
  var counter: Int = 0
  override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    textView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("onTap:")))
  }
  func onTap(sender: UITextView) {
    if counter % 2 == 0 {
      textView.text = "\(UnicodeEmojiData.ALL_VALUES)"// (a)
      counter = counter + 1
    }
    else {
      textView.text = ""
      counter = counter - 1
    }
  }

启动时

内存使用:7.35MB...(1)

UITextView 没有任何文本。

第一次点击

内存使用:18.13MB...(2)

UITextView 拥有所有 Unicode 表情符号。

第二次点击

内存使用:14.24MB...(3)

UITextView 没有任何文本。

问题

顺便说一下,emoji 好像是内部绘制成位图的。

我认为没有任何方法可以取消缓存字体(您正在尝试这样做)。这是由 Core Text 系统处理的,一旦不厌其烦地想出一个字符,它就喜欢抓住它。

如果这导致问题,您应该打开雷达 (bugreport.apple.com) 并报告它。