过度使用NSView - >备择方案?

时间:2015-06-14 16:54:44

标签: objective-c macos performance cocoa nsview

我的应用程序遇到了一些性能问题:

加载需要2秒以上 - >所以我马上去了Apple文档

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaPerformance/Articles/CustomViews.html#//apple_ref/doc/uid/TP40001443-CJBJIFGC

在名为&#34的部分中;避免过度使用视图"在底部我很困惑:

我确实添加了很多NSViews(猜猜我过度使用它们)。

" 相反,您应该考虑编写自己的自定义类,这些类可以由更高级别的NSView子类管理。然后可以优化NSView子类的绘图代码以处理自定义对象。 "

我的问题是:

如何编写自己的自定义类,可以由更高级别的NSView子类管理 - >任何一个例子?

我认为只有CALayer

添加CALayer子类比添加NSView更好吗? 它会不会增加我的糟糕表现?

或者还有新的东西需要学习?

编辑:

目前我已NSView我在其中添加了15个NSView作为子视图,我可以添加15个CALayer: - /

1 个答案:

答案 0 :(得分:2)

你有没有想过你的应用程序?在拆分视图层次结构之前,请使用带有时间分析器的工具来找出实际花费的时间。

CALayers比UIViews更有效,如果你不需要,建议避免使用drawRect,但在进行重写之前,你需要知道你的应用程序实际花费的时间。