ios - 是否可以为 Swift 或 Objective-C 中的对象提供更多内存?

标签 ios objective-c swift

我发现当您添加超过 1MB 的文本时,UITextView 会变得迟缓。除了复杂的自定义工作(例如重新创建 UITextView)之外,是否有可能以某种方式为对象分配更多内存或其他一些技巧?

最佳答案

为 UITextView 分配更多内存对您没有帮助。它已经占用了它想要的所有内存。如果有一个无需权衡的简单技巧,那么 UITextView 几乎肯定会自动执行此操作。因此,这取决于您想要进行哪些权衡以及您使用的功能。例如,您可以通过删除数据检测器等功能来获得一些改进。或者只使用未格式化的字符串(而不是具有复杂格式的属性字符串)。不允许编辑可能会改善情况。当然,如果您需要这些功能,那将无济于事(但您还没有解释自己在做什么)。如果您正在实现委托(delegate)方法,那么问题当然可能出在您的方法中,而不是 UITextView。我有点怀疑这些调整是否会发生很大变化,但关闭功能是最好的起点。

对于 UITextView 来说,1MB 确实看起来像很多文本。这并不是真正的常见用例,并会引发一些困难的布局问题,尤其是在进行任何格式设置的情况下。它还代表了一种困难的用户导航体验(你的滚动条真的能在 500 页的文档上有效工作吗?)我几乎肯定会寻找一个自定义解决方案(可能构建在 TextKit 上)来解决这个相当自定义的问题。

关于ios - 是否可以为 Swift 或 Objective-C 中的对象提供更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475063/

相关文章:

ios - 导航到不在 UITabBar 上的 ViewController

objective-c - 在 Objective-C 运行时动态访问局部变量

objective-c - 泄漏是如何发生的?

swift - Realm 中的嵌套对象

ios - Swift - 动画 UIImageView 图像

iphone - 如何构建用于在 iPhone 中标记电子邮件的应用程序?

ios - 在另一个 swift 类中使用 String

objective-c - Cocoa:如何在 Cocoa 中禁用 Web View 的所有用户交互?

iOS BLE CentralManager didFailToConnect 到外围设备未被调用

ios - 通过推送通知打开特定的 View Controller