我在我的 iOS 应用程序中使用 ARC。我已经介绍了下面的方法,尽管该算法非常幼稚和浪费,但 77% 的时间都花在了objc_retain
和objc_release
. 我认为它必须归结为我从中获取一个单元的行,NSArray
并且 ARC 每次都小心地保留然后释放对象。
我正在寻找一个明智的建议:我如何优雅地修复它?
-(CGFloat)getUncertaintyForUnits:(NSArray*)units Position:(MKMapPoint)position Zoom:(MKZoomScale)zoomScale {
CGFloat closest = MAXFLOAT;
for (int i = 0; i < [units count]; i++) {
Unit *units = (Unit*)[units objectAtIndex:i];
CGFloat distance = [self distanceBetweenMapPoints:unit.mapPoint And:position];
if (distance < closest) {
closest = distance;
}
}
CGFloat max = 100 / zoomScale;
return (1. - closest / max) * 0.9;
}