具体问题在 QNDnsManager.m 文件中, 对 queryInternalWithDomain 方法进行了异步调用,并且在@synchronized 块 中对 result 数组进行了更改,所以会导致崩溃, 建议在 records2Ips 方法中 的 for (QNRecord *r in records) 改为 for (QNRecord *r in [records copy]) 或者不要使用 for in 来进行循环。
static NSArray *records2Ips(NSArray *records) {
NSMutableArray *array = [[NSMutableArray alloc] init];
for (QNRecord *r in records) { // 此处使用 for in 遍历会有问题
[array addObject:r.value];
}
return array;
}
Bugly 统计,HappytDNS 导致 崩溃很频繁。
具体问题在
QNDnsManager.m
文件中, 对queryInternalWithDomain
方法进行了异步调用,并且在@synchronized
块 中对 result 数组进行了更改,所以会导致崩溃, 建议在records2Ips
方法中 的for (QNRecord *r in records)
改为for (QNRecord *r in [records copy])
或者不要使用 for in 来进行循环。