问题:不能读取保存的ALAssert信息,在block中取出来是正常的,但是在函数返回的时候就不是当初保存的值了。求帮助。 主要代码如下:
-(NSMutableArray *) getPhoto:(NSMutableArray*)_groups{
NSMutableArray *_photos = [NSMutableArray alloc] init];
for (int i = 0; i < _groups.count; i++) {
ALAssetsGroup *groupwho = [_groups objectAtIndex:i];
ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock = ^(ALAsset * result, NSUInteger index, BOOL *stop){
if (result) {
ChooseItemObjectInfo *info = [[ChooseItemObjectInfo alloc]init];
info.fileName = [result defaultRepresentation].filename;
info.fileUrl = [result valueForProperty:ALAssetPropertyAssetURL];
info.fileSize = [AppUtils formattedFileSize:[result defaultRepresentation].size];
info.file = result;
[_photos addObject:info];
}
};
ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos];
[groupwho setAssetsFilter:onlyPhotosFilter];
[groupwho enumerateAssetsUsingBlock:assetsEnumerationBlock];
}
return _photos;
}
其中在_photos add ChooseItemObjectInfo 对象是,file保存的是ALAsset,但是在return的时候,就变成了如下内存所示,请大家帮帮忙看看。
你的ChooseItemObjectInfo
类的file
属性是strong
吗?
函数返回后访问info.file
会不会崩溃?
不崩溃的话,Log看看它的Class叫啥?