该问题看似很简单,但很难找到解决办法。每次我在iPhone上使用UITextView时,Xcode中显示的内存使用情况都会显示异常大的利用率。例如,当我上下滚动时,包含一个简短段落(大约1KB)的UITextView会消耗大约17-18mB的内存。更不用说像100KB文件这样的大文本量,它需要半分钟才能加载到视图中。
这是我在viewDidLoad()中实现它的方式,我不认为它与代码有任何关系,因为当我从情节提要中创建一个带有默认示例文本的新UITextView时,这是完全相同的问题。
我有一个NSString读取文件内容并使UITextView显示NSString作为其文本。
@interface FileContentViewController ()
@property (weak, nonatomic) IBOutlet UILabel *fileNameTextLabel;
@property (weak, nonatomic) IBOutlet UITextView *fileContentView;
@end
@implementation FileContentViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)displayFileContentInTxtView
{
if (!self.fileData) {
self.fileContentView.text=@"file is empty";
return;
}
unsigned char *fileContentBuffer=(unsigned char *)[self.fileData bytes];
NSString *fileContentString=@"";
for(int i=0;i<[self.fileData length];i++)
{
fileContentString=[fileContentString stringByAppendingString:[NSString stringWithFormat:@"%02x",*(fileContentBuffer+i)]];
}
self.fileContentView.text=fileContentString;
self.fileData=nil;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.fileNameTextLabel.text=self.titleLabelText;
[self displayFileContentInTxtView]; …Run Code Online (Sandbox Code Playgroud)