- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将用户相册中的所有图像加载到我的应用程序的收藏 View 中,但在加载其中一些图像后,应用程序将自行关闭并返回主菜单。与 XCode 的连接也断开了。这不会发生在模拟器中,而只会发生在我正在测试的 iPhone 4s 中。崩溃前出现的错误信息,按照出现的顺序,
我已经找到了我认为导致此问题的部分代码。
var imgFetchResult: PHFetchResult!
override func viewDidLoad() {
super.viewDidLoad()
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
let fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)
if fetchResult.count > 0
{
println("images found ? \(fetchResult.count)")
self.imgFetchResult = fetchResult
}
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
println("cellForItemAtIndexPath")
let cell: PhotoThumbnailCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as PhotoThumbnailCollectionViewCell
println("indexpath is \(indexPath.item)")
if( indexPath.item == 0 )
{
cell.backgroundColor = UIColor.redColor() //temp placeholder for camera image
}
else
{
let asset: PHAsset = self.imgFetchResult[indexPath.item] as PHAsset
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFill, options: nil, resultHandler: {(result, info) in cell.setThumbnailImage(result)
})
}
return cell
}
我相信我需要释放内存但不确定要释放什么。似乎是图像被加载到 Collection View 的单元格中。
我还发现 Collection View 不超过 4 张图像。在第四张图片之后,崩溃发生了。此外,图像未按顺序加载。
最佳答案
在这行代码中发现了问题
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFill, options: nil, resultHandler: {(result, info) in cell.setThumbnailImage(result)
})
参数 targetSize
传递了 PHImageManagerMaximumSize
的值,这是罪魁祸首。我将其更改为 CGSize(width: 105, height: 105)
解决了这个问题。
根据文档PHImageManagerMaximumSize
When you use the PHImageManagerMaximumSize option, Photos provides the largest image available for the asset without scaling or cropping. (That is, it ignores the resizeMode option.)
所以,这就解释了问题。我相信如果是单张图片,应该没有问题,但如果是多张图片,设备就会耗尽内存。
我希望这对其他人有帮助。
关于ios - 将照片中的图像加载到 Collection View 会导致错误消息 "Connection to assetsd was interrupted or assetsd died",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28807715/
我从 PHAssets 加载照片。当我加载一些图像并将它们传递给另一个 View Controller 时,我得到了这个错误日志。我似乎无法在网上找到任何关于此的信息。任何人都遇到过这个并知道它是什么
我们正在尝试让用户从他们的相册中导入图片(UIImagePickerController),并且我们正在缩放/调整大于 8 兆像素(iPhone 标准)的图像。 但每次应用程序崩溃时,与 assets
当我尝试使用此 swift 库 ( https://github.com/piemonte/player ) 播放多个视频时出现此错误。不确定它是否与该播放器有关,或者与照片框架有关,还是什么。 实际
我收到了奇怪的警告 “与 assetsd 的连接中断或 assetsd 死亡” 并在处理 Assets 时没有输出到控制台后崩溃。我将处理后的视频保存到 Assets 中。几次储蓄后,应用程序开始出现
我正在尝试将用户相册中的所有图像加载到我的应用程序的收藏 View 中,但在加载其中一些图像后,应用程序将自行关闭并返回主菜单。与 XCode 的连接也断开了。这不会发生在模拟器中,而只会发生在我正在
我试图让 CameraRoll 和 ListView 在 REACT-NATIVE 上正确运行。我使用 CameraRoll-Example 作为基础。在模拟器中,它可以处理大约 5 张图像。在我的
我的 iOS 应用程序允许用户编辑和保存图像和视频。编辑后的媒体通过调用 PHPhotoLibrary 的 performChanges block 中的 PHAssetChangeRequest.c
我正在尝试使用 UIPageViewController 显示图像,使用来自苹果的示例代码并将其替换为新的照片工具包:PHAsset https://developer.apple.com/libra
我是一名优秀的程序员,十分优秀!