我正在开发一个图片库,允许从iPhone中选择一些图片并显示它们。
关于此画廊的一些解释:
UITableView
显示包含iPhone图片的不同目录UICollectionView
UITableView
如何实施此图库:
ALAssetsGroup
存储在NSMutableArray
名为directoriesData UITableView
。ALAsset
中的每个NSMutableArray
存储在UICollectionView
个命名的picturesData中。NSMutableArray
中显示缩略图
UITableView
名为desiredPictures的单个实例中。ALAsset
之前从picturesData中删除所有对象。现在出现问题:
我的iPhone中有两个不同的图片目录。
目录A. 目录B
我想在目录A中选择一张图片,在目录B中选择另一张图片。
选择它们后,我点击下一页显示它们。
新页面从desiredPictures加载图像。
但是,当我想通过访问目录A的EXC_BAD_ACCESS
来显示所选图片时,我有一个EXC_BAD_ACCESS
。
在我的项目中经过一些测试和研究后,我发现如果我不从picturesData中删除对象(当我按下按钮时),我就不再有UICollectionView
。
但是,我需要清理picturesData的内容,因为当我从picturesData中填充UICollectionView
时。如果我访问目录A然后访问目录B,我将获得ALAsset
中两个目录的内容。
那么如何保持objc_msgSend + 6, queue = 'com.apple.root.high-priority, stop reason = EXC_BAD_ACCESS (code=1, address=0xc)
指针正确并清理pictureData?
frame #0: 0x39764b26 libobjc.A.dylib
我希望你理解我的项目和问题。
谢谢!
编辑:
回溯
*线程#29:tid = 0x599a6,0x39764b26 libobjc.A.dylib -[Picture getFullImage](self=0x176ebb40, _cmd=0x005de393) + 310 at Picture.m:211
objc_msgSend + 6
frame #2: 0x001959bc MyProject
帧#1:0x00195f1a MyProject __68-[ImageCropViewController sliderContentsAddContent:ToSlider:AtPage:]_block_invoke(.block_descriptor=0x17637000) + 50 at ImageCropViewController.m:1020
- [Picture getCroppedImage](自= 0x176ebb40,_cmd = 0x005da2b4)+ 68在Picture.m:154
frame #4: 0x39c4cd1a libdispatch.dylib
帧#3:0x001f9a82 MyProject _dispatch_root_queue_drain + 220
_ dispatch_call_block_and_release + 10
frame #6: 0x39c53f58 libdispatch.dylib
帧#5:0x39c53d70 libdispatch.dylib {{1}} _ dispatch_worker_thread2 + 56
第7帧:0x39d8edbe libsystem_pthread.dylib`_pthread_wqthread + 298