Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 图像视图中的仪器优化_Iphone_Uiimageview_Instruments_Uicollectionview - Fatal编程技术网

Iphone 图像视图中的仪器优化

Iphone 图像视图中的仪器优化,iphone,uiimageview,instruments,uicollectionview,Iphone,Uiimageview,Instruments,Uicollectionview,我正在加载一组UIImages(它们是本地的,并预装在应用程序中),代码如下: NSString*plistPath = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"plist"]; NSArray *array = [NSArray arrayWithContentsOfFile:plistPath]; NSMutableArray *finalArray = [[NSMutableArray alloc] initWit

我正在加载一组UIImages(它们是本地的,并预装在应用程序中),代码如下:

NSString*plistPath = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];
NSMutableArray *finalArray = [[NSMutableArray alloc] initWithCapacity:array.count];
for(int i=0;i<array.count; i++) {
    [finalArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%@",[array objectAtIndex:i]]]];
}
collectionView的展示有很大的滞后。我通过以下仪器屏幕截图捕捉到了这种滞后:

在滞后(用户体验到的,如图所示)和下面的实际调用树之间存在一个主要的断开连接,这表明没有延迟。我正在collectionView的每个单元格中加载500k jpg。这个仪器分析基本上是说在代码中我无能为力,这是系统库延迟吗

编辑:我的问题不再是关于我的collectionView的这个特定用例。这是关于一般的仪器。如果我在截图中选择了选项,并且应用程序显示了明显的延迟,但时间分析器没有,那么我可以在代码中做些什么来提高速度吗?我想我问的是关于时间分析器、设置和它们的结果。如果所有的延迟都归因于较低级别的代码或系统框架,我能做些什么吗?

将缓存您的映像。 用于避免缓存。

希望这将加快您的加载速度。

您是否在后台/单独的线程上加载它们,如果没有,请执行此操作将解决您的问题并将它们加载到队列中。因此,一旦加载图像,通知将使用它的对象并将图像对象传递给它


创建一个简单的NSO操作,加载图像并通知分配给它的代理。为要加载的每个映像创建此类的对象,并将其添加到NSOperationQueue,并将NSOperationQueue的最大并发操作计数设置为1。

您在右侧设置面板中启用了
隐藏系统库
复选框,因此它将隐藏对未定义的方法的任何调用。例如,如果您对
imageNamed:
进行了一系列调用,并且选中了此复选框,您将看不到系统解压缩和加载这些图像所需的时间

因此,从技术上讲,所有的“滞后”/“缓慢”都在系统框架中,但您可以控制如何使用它们。您还可以监控系统框架中的哪些操作在时间上最昂贵

取消选中此框是解决方案:


似乎没有帮助:NSString*filePath=[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:[array objectAtIndex:i]];[finalArray addObject:[UIImage imageWithContentsOfFile:filePath]];你能描述一下你的收藏观吗?我猜它是一个小的单元格大小?请看我的编辑。谢谢。这就是我想要的反馈
cell.cellImage.image = [finalArray objectAtIndex:indexPath.row];