Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.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
在iOS中显示文本流_Ios_Objective C_Nsstring - Fatal编程技术网

在iOS中显示文本流

在iOS中显示文本流,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我需要在我的应用程序中呈现一个正在运行的文本流,我从我的服务器获得了正在运行的文本,并且我可以使用NSLog看到该流正在运行。文本正在更改,并且每秒有一行新行。 由于我是iOS的新手,我已经做了一项研究,我仍然对一些夫妇感到困惑: 1.在UITableView和UIScrollView之间,关于性能,您推荐哪一种? 2.什么是适合使用的库?它像NSStream还是我只是将它呈现给我的UITable 如果您能提供这方面的代码片段或教程,将不胜感激 谢谢…我没有时间写代码,因为代码并不简单 您需要创

我需要在我的应用程序中呈现一个正在运行的文本流,我从我的服务器获得了正在运行的文本,并且我可以使用NSLog看到该流正在运行。文本正在更改,并且每秒有一行新行。 由于我是iOS的新手,我已经做了一项研究,我仍然对一些夫妇感到困惑:

1.在UITableView和UIScrollView之间,关于性能,您推荐哪一种? 2.什么是适合使用的库?它像NSStream还是我只是将它呈现给我的UITable

如果您能提供这方面的代码片段或教程,将不胜感激


谢谢…

我没有时间写代码,因为代码并不简单

您需要创建UITextView,并在接收新内容时将字符串附加到文本视图

UITextView是UIScrollView的一个子类,因此可以对其使用所有UIScrollView操作,包括在添加新内容时向下滚动到底部。这是获得良好性能的最佳方法,因为UIScrollView和UITextView都紧密集成到设备上的图形硬件中

如果文本非常大(数百兆字节),则在向末尾添加新文本时,还应删除文本视图顶部的旧文本


只需使用您现在拥有的代码,而不是NSLog(),将其附加到UITextView。

IMHO,
UITableView
将是理想的选择,因为它经过了很好的优化,可以重用其单元格。如果使用滚动视图,3600行(即1小时日志)可能会以3600个文本视图(或标签)结束,而对于表视图,它始终是屏幕上可见的行数

对于数据模型,我认为您可以只使用一个大的数组,它不断地从服务器获取数据,当数据太大时可能会被截断(我的意思是删除非常旧的行)


记住优化的规则:在优化它之前先让它工作。

我很确定,与具有大数组的UITableView相比,具有单个大字符串的UITextView速度更快,使用的内存更少。它不会绘制整个字符串,它只会绘制随着每次插入而改变的子字符串。嗯,我认为RAM在这里不是一个大问题,因为一百万个字符只需要1或2MB。
UITableView
UITextView
都只绘制文本的可见部分,所以我认为性能也不是大问题<如果日志是逐行记录的(类似于
NSLog
),那么code>UITableView会更好,但如果日志是连续的,即没有换行,那么就不能选择。我的应用程序中有一个使用UITableView的日志,我不推荐它。问题是默认情况下它不会处理文本换行,如果实现正确的文本换行,则很难保持良好的性能。如果我要再次编写日志视图,我会使用UITextView。大家好,感谢反馈,在尝试使用uitableview和UITextView之后,我决定使用UITextView,因为它在我的条件下更简单,我会测试基准1个多小时,不会出现性能问题。我使用NSMutableString,因为我需要上面的新行,不在下面。@user2373192 UITextField有一个属性“storage”,它是一个NSTextStorage。这是专为文本视图设计的NSMutableString的一个子类,直接修改文本存储比修改NSMutableString具有更好的性能。