Iphone 在UITextView中高效使用大量文本

Iphone 在UITextView中高效使用大量文本,iphone,memory-management,uitextview,Iphone,Memory Management,Uitextview,我有一个包含20个项目的plist字典数组,20个字典中的每一个都有“代码”和“文本”;每个文本平均1K字节。基于“代码”,使用文本的类将使用20个中的1个。文本没有改变,所以我把它放在包里 我想知道我是否在尽可能高效地完成这项工作,基本上是一秒钟读取20K数据,使用我需要的,并释放我使用的1K以外的所有数据 我有2个不带属性的IVAR: NSMutableArray *explanation; UITextView *textView; textView位于UITableViewCell中,

我有一个包含20个项目的plist字典数组,20个字典中的每一个都有“代码”和“文本”;每个文本平均1K字节。基于“代码”,使用文本的类将使用20个中的1个。文本没有改变,所以我把它放在包里

我想知道我是否在尽可能高效地完成这项工作,基本上是一秒钟读取20K数据,使用我需要的,并释放我使用的1K以外的所有数据

我有2个不带属性的IVAR:

NSMutableArray *explanation;
UITextView *textView;
textView位于UITableViewCell中,从cellForRowAtIndexPath调用[self retrieveExplanation]。我从retrieveExplanation中加载textView,而不是返回NSString,以保存额外的NSString内存分配

-(void) retrieveExplanation {
    explanation = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"explanation"ofType:@"plist"]];
    textView.text = [[explanation objectAtIndex:[self.itemNumber intValue] - 1] objectForKey:@"text"]; 
    [explanation release];
}
这能更有效吗?我应该考虑使用20个PrIST或文本文件吗?< /P>
谢谢

我认为你应该仔细考虑这个问题。普通iPhone需要多长时间才能加载所有20K文本。如果它真的很慢,您可能需要考虑将文本文件分离出来。 将它们分开时的问题是如何管理大量文本文件。我真的不建议您将文本文件分隔为20个,与我们可以恢复的性能相比,管理所有文本文件的开销似乎太大了


我可以建议您将文本文件分为4个,这样至少性能会提高4倍。例如,如果运行速度足够快,小于1s,那么您的工作就完成了。如果不是,那么你需要分离更多的内容。这类内容很难确定。你可以给出建议,但最好通过尝试不同的方法和衡量所用的时间来确定真相

我所能建议的就是尝试一下你的一些想法,得到一些硬数字


另外,请确保在设备上进行测量,而不是通过模拟器进行测量。

谢谢。我采用了“平衡文件的最佳数量/大小与可接受的加载时间”的方法。