这个问题看起来很简单,但是很难找到解决方法。每次在iPhone上使用UITextView时,Xcode中显示的内存使用量都会异常地增加。例如,一个包含短段落(约1KB)的UITextView,在向上和向下滚动时会消耗约17-18MB的内存。更不用说大量文本,如100KB的文件,需要半分钟才能加载到视图中。
以下是我在viewDidLoad()中的实现方式。我不认为这与代码有任何关系,因为当我从storyboard中创建一个带有默认示例文本的新UITextView时,它仍然存在相同的问题。
我有一个NSString读取文件内容,并使UITextView将NSString作为其文本显示。
以下是我在viewDidLoad()中的实现方式。我不认为这与代码有任何关系,因为当我从storyboard中创建一个带有默认示例文本的新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];
}