小编Zha*_*hen的帖子

UITextView在IOS中消耗大量内存

该问题看似很简单,但很难找到解决办法。每次我在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)

iphone objective-c uitextview ios

5
推荐指数
1
解决办法
875
查看次数

标签 统计

ios ×1

iphone ×1

objective-c ×1

uitextview ×1