ios - ALAsset 指针在访问时抛出 EXC_BAD_ACCESS

标签 ios iphone objective-c alassetslibrary alasset

我正在开发一个图片库,它允许从 iPhone 中选择一些图片并显示它们。

关于这个画廊的一些解释:

  • UITableView显示包含 iPhone 图片的不同目录
  • 当用户点击这些目录之一时:显示 UICollectionView使用所选目录中的不同图片
  • 返回按钮返回 UITableView
  • 用于在新页面中显示所选图像的“下一步”按钮。

这个图库是如何实现的:

  • 对于在 iPhone 图片中找到的每个目录,存储 ALAssetsGroupNSMutableArray命名目录数据
  • UITableView 中显示存储在 directoriesData 中的目录.
  • 当用户选择一个目录时:存储每个 ALAsset包含在此目录中的 NSMutableArray名为 picturesData。
  • UICollectionView 中显示缩略图来自图片数据。
  • 当用户选择一张图片时,它被存储在NSMutableArray 的单例实例中。命名为 desiredPictures。
  • 如果用户单击后退按钮,我会在显示 UITableView 之前从 picturesData 中删除所有对象.

现在的问题:

我的 iPhone 中有两个不同的图片目录。

目录A 目录B

我想在目录 A 中选择一张图片,在目录 B 中选择另一张。

选中它们后,我单击到下一页以显示它们。

新页面从 desiredPictures 加载图像。 但是当我想通过访问 ALAsset 来显示选定的图片时在目录 A 中,我有一个 EXC_BAD_ACCESS .

在我的项目中进行一些测试和研究后,我发现如果我不从 picturesData 中删除对象(当我按下按钮返回时),我将不再有 EXC_BAD_ACCESS。 .

但是,我需要清理 picturesData 的内容,因为当我填充 UICollectionView 时它来自图片数据。在我访问目录 A 然后访问目录 B 的情况下,我将在 UICollectionView 中拥有这两个目录的内容。 .

那么我怎样才能保留ALAsset指针正确且干净的图片数据?

希望您了解我的项目和问题。

谢谢!

http://img11.hostingpics.net/pics/581536photo.jpg

编辑:

回溯

* 线程 #29:tid = 0x599a6,0x39764b26 libobjc.A.dylib objc_msgSend + 6, queue = 'com.apple.root.high-priority, stop reason = EXC_BAD_ACCESS (code=1, address=0xc)<br/> frame #0: 0x39764b26 libobjc.A.dylib objc_msgSend + 6
第 1 帧:0x00195f1a MyProject -[Picture getFullImage](self=0x176ebb40, _cmd=0x005de393) + 310 at Picture.m:211<br/> frame #2: 0x001959bc MyProject -[Picture getCroppedImage](self=0x176ebb40, _cmd=0x005da2b4) + 68 at Picture.m:154
第 3 帧:0x001f9a82 MyProject __68-[ImageCropViewController sliderContentsAddContent:ToSlider:AtPage:]_block_invoke(.block_descriptor=0x17637000) + 50 at ImageCropViewController.m:1020<br/> frame #4: 0x39c4cd1a libdispatch.dylib _dispatch_call_block_and_release + 10
第 5 帧:0x39c53d70 libdispatch.dylib _dispatch_root_queue_drain + 220<br/> frame #6: 0x39c53f58 libdispatch.dylib _dispatch_worker_thread2 + 56
第 7 帧:0x39d8edbe libsystem_pthread.dylib`_pthread_wqthread + 298

最佳答案

Apple 提供了一种简洁的方法来实现您想要实现的目标。

这是示例代码:MyImagePicker

并尝试分析代码,看看他们在做什么。!

关于ios - ALAsset 指针在访问时抛出 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555089/

相关文章:

ios - 如何判断 UIImage 是彩色还是单色?

android - 是否可以在不使用 phonegap 的情况下开发 html5 应用程序?

iphone - Iphone的开发环境?

objective-c - 多个模态视图可防止背景变暗/禁用 UIModalPresentationPageSheet

ios - iPhone 屏幕键盘的高度是多少?

ios - 当一个应用程序从后台启动时,applicationDidBecomeActive 会被调用吗?

ios 使用 Storyboard 可本地化字符串进行动态本地化

ios - GPUImage 在另一个 View 中显示直方图

IOS Parse 如何在字符串数组中搜索子字符串?

ios - 无法使 iOS 设备的条件 CSS 正常工作