【发布时间】:2021-10-17 19:16:42
【问题描述】:
我想用线程扫描照片库,当我的应用程序逻辑正常时,我想将PHAsset 添加到finalarray:
NSMutableArray <PHAsset *> *finalarray = [[NSMutableArray alloc] init];
for (NSMutableArray *photoArray in arrayOfArrays) {
dispatch_group_enter(aGroup);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
for (PHAsset *asset in photoArray) {
[[PHImageManager defaultManager] requestImageDataForAsset:asset
options:options
resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
//Make some logic
if (logic) {
[finalarray addObject:asset];
}
}];
}
dispatch_group_leave(aGroup);
});
}
arrayOfArrays 是PHAsset 的数组。
我的代码运行良好,但有时我会遇到SIGABRT 崩溃,并且我会在代码控制台中看到此日志:
malloc: Incorrect checksum for freed object 0x1206d5968: probably modified after being freed.
Corrupt value: 0x100017580
malloc: *** set a breakpoint in malloc_error_break to debug
malloc: Incorrect checksum for freed object 0x1206d5968: probably modified after being freed.
Corrupt value: 0x100017580
【问题讨论】:
标签: ios objective-c iphone