Ios 如何按大小对相集数组排序
我在数组(arrayOfAsset)中有数千个Ios 如何按大小对相集数组排序,ios,objective-c,Ios,Objective C,我在数组(arrayOfAsset)中有数千个PHAssets,我知道如何按创建日期对数组进行排序 [[arrayOfAsset objectAtIndex:j1]排序描述符:@[[NSSortDescriptor SortDescriptor With Key:@“creationDate”升序:是]] 但是我不知道如何根据资产的大小对数组进行排序。您好,您可以使用pixelWidth和pixelHeight根据大小大致排序。假设仅用于照片。对于视频,您需要在排序中包含持续时间 NSSortD
PHAssets
,我知道如何按创建日期对数组进行排序
[[arrayOfAsset objectAtIndex:j1]排序描述符:@[[NSSortDescriptor SortDescriptor With Key:@“creationDate”升序:是]]代码>
但是我不知道如何根据资产的大小对数组进行排序。您好,您可以使用pixelWidth
和pixelHeight
根据大小大致排序。假设仅用于照片。对于视频,您需要在排序中包含持续时间
NSSortDescriptor *sortByWidth = [NSSortDescriptor sortDescriptorWithKey:@"pixelWidth" ascending:YES];
NSSortDescriptor *sortByHeight = [NSSortDescriptor sortDescriptorWithKey:@"pixelHeight" ascending:YES];
[[arrayOfAsset objectAtIndex:j1] sortUsingDescriptors:@[sortByWidth,sortByHeight]];
PHAsset
类中没有大小属性,但您可以从“PHAsset”中获取实际的媒体NSData,并使用NSData计算的大小创建一组不同的数组,如data.length
,然后当您获得所有大小时,使用大小键对它们进行排序。但这可能会导致巨大的内存消耗,因为你说你有很多图像。你可以根据图像大小进行排序。@iphone谢谢你的回答。我试过你说的方式。对于较少数量的图像,它可以正常工作,但如果我的图像超过2500张,它就会崩溃。还有其他方法吗???请您解释一下如何从资产中获取图像的大小。像素宽度和资源。像素高度???谢谢你的回答。我用示例代码尝试了lot,但它不起作用。在数组中,我有8个大小集(241KB、245KB、240KB、238KB、241KB、238KB、238KB、235KB)。但所有资源都具有相同的像素宽度和像素高度。我们如何按像素宽度、像素高度排序?是的。那样的话,我不知道。我认为如果大小相同但字节不同,就没有办法做到这一点。