Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在将NSString加载到UILabel之前是否应该剪切它?_Iphone_Nsstring_Uilabel - Fatal编程技术网

Iphone 在将NSString加载到UILabel之前是否应该剪切它?

Iphone 在将NSString加载到UILabel之前是否应该剪切它?,iphone,nsstring,uilabel,Iphone,Nsstring,Uilabel,我有很多很长的字符串,每个都有500-1000个单词 我也有一些UILabel。NSString将动态加载到UILabels UILabel大小固定,最多只能显示50-100个单词 因此,80%的单词将无法显示在屏幕上 那么,我的问题是,在将NSstring加载到UILabels之前,我是否应该将其80%的单词从NSstring中删除? 我担心的是 内存使用。如果我剪切并将每个NSString的20%加载到UILabel,这会为我节省内存吗 加载性能。我不知道iOS如何处理80%的NSStrin

我有很多很长的字符串,每个都有500-1000个单词

我也有一些UILabel。NSString将动态加载到UILabels

UILabel大小固定,最多只能显示50-100个单词

因此,80%的单词将无法显示在屏幕上

那么,我的问题是,在将NSstring加载到UILabels之前,我是否应该将其80%的单词从NSstring中删除?

我担心的是

  • 内存使用。如果我剪切并将每个NSString的20%加载到UILabel,这会为我节省内存吗

  • 加载性能。我不知道iOS如何处理80%的NSString。iOS仍然会画图(但由于UILabel的视觉尺寸有限,显然不会画图),还是会巧妙地停止绘制视觉区域以外的任何东西


  • 谢谢

    您可以选择
    UILabel
    ,您可以使用
    单行
    多行
    ,此模式将决定
    UILabel
    的性能

    你的问题没有直接的答案,因为我们看不到苹果是如何实现UILabel的


    如果您不要求显示完整文本,则只能通过字符串的20%,可以将其视为优化。

    您可以使用
    UILabel
    进行选择,您可以使用
    单行
    多行
    ,此模式将决定
    UILabel
    的性能

    你的问题没有直接的答案,因为我们看不到苹果是如何实现UILabel的


    如果显示完整文本不是您的要求,那么您只能通过字符串的20%,可以将其视为优化。

    我怀疑UILabel不会费心绘制您看不到的字符串片段。在任何情况下,它们都不会占用大量内存,因为它们所绘制的位图上下文仅与视图边界一样大。它们可能会额外使用几KB,但这真的没什么大不了的;请记住,像素是4个字节


    在测量性能问题之前,不要费心进行复杂的优化。

    我怀疑UILabel不会费心绘制您看不到的字符串片段。在任何情况下,它们都不会占用大量内存,因为它们所绘制的位图上下文仅与视图边界一样大。它们可能会额外使用几KB,但这真的没什么大不了的;请记住,像素是4个字节

    在测量性能问题之前,不要为复杂的优化而烦恼。

    “过早优化是万恶之源” -唐纳德·克努斯

    把整个过程都传过去,如果慢了,再想想这个

  • 理论上是的,因为UILabel.text存储屏幕上打印的文本。但是,我们不再在拥有16k内存的机器上运行。见上面的引文

  • 我相信Quartz会做这个优化。通常,在UIView边界的CGRect之外进行的绘图不会完成

  • “过早优化是万恶之源” -唐纳德·克努斯

    把整个过程都传过去,如果慢了,再想想这个

  • 理论上是的,因为UILabel.text存储屏幕上打印的文本。但是,我们不再在拥有16k内存的机器上运行。见上面的引文

  • 我相信Quartz会做这个优化。通常,在UIView边界的CGRect之外进行的绘图不会完成


  • 一个明显的问题是,为什么要将字符串传递给UILabel,而不是全部显示?无论哪种方式,它的内存效率都不是很高,因为它会将完整的数据存储在内存中,而是作为tc。提到,对于您正在处理的大小长度合理的字符串,它几乎不会引起太多的内存问题


    除非您的应用程序中出现明显的内存问题,否则我建议您不要使用它。

    一个明显的问题是,为什么您希望将字符串传递给UILabel,而不显示所有内容?无论哪种方式,它的内存效率都不是很高,因为它会将完整的数据存储在内存中,而是作为tc。提到,对于您正在处理的大小长度合理的字符串,它几乎不会引起太多的内存问题

    我建议您不要使用它,除非您的应用程序中出现明显的内存问题