我正在尝试制作像相册一样的视图。但图像文件很大(2048x1536,png)。加载几张图像需要相当长的时间。所以制作了加载图像的线程.. 首先..为图像持有者制作 UIButton。
UIButton* thumbnail = [[UIButton alloc] initWithFrame:r];
[[self scroll] addSubview:thumbnail];
[thumbnail release];
并启动图像加载线程
[NSThread detachNewThreadSelector:@selector(th_load_filelist) toTarget:self withObject:nil];
线程在这里
-(void) th_load_filelist
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
for (UIButton* bt in [self.scroll subviews])
{
UIImage* img = [[UIImage alloc] initWithContentsOfFile:(NSString*)bt.tag];
[[bt layer] performSelectorOnMainThread:@selector(setContents:) withObject:(id)[img CGImage] waitUntilDone:YES];
[img release];
}
[pool release];
}
它运作良好。在正常情况下。但是如果有很多图像和内存警告发生。应用程序崩溃,没有任何错误消息。你能给我小费来解决它吗?我怀疑有大图像引起的内存问题..