Reputation: 83
On iOS 15 and lower all good, issue appear only on iOS 16.
+ (void)load
{
// test image with rect
CIImage * image = [ [ CIImage alloc ] initWithData:[ NSData dataWithContentsOfURL:[ NSURL URLWithString:@"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSSZRebToiMqFCochj1CzIQws9HSFhjrihw0g&usqp=CAU" ] ] ];
for (int i = 0; i < 1000; i++)
{
@autoreleasepool
{
VNSequenceRequestHandler * sequenceRequestHandler = [ [ VNSequenceRequestHandler alloc ] init ];
__block VNRectangleObservation * lastObservation = nil;
VNDetectRectanglesRequest * detectRequest = [ [ VNDetectRectanglesRequest alloc ] initWithCompletionHandler:^(VNRequest * request, NSError * error)
{
lastObservation = request.results.firstObject;
} ];
[ sequenceRequestHandler performRequests:[ NSArray arrayWithObject:detectRequest ] onCIImage:image error:nil ];
VNTrackRectangleRequest * trackRequest = [ [ VNTrackRectangleRequest alloc ] initWithRectangleObservation:lastObservation completionHandler:nil ];
NSError * error = nil;
[ sequenceRequestHandler performRequests:[ NSArray arrayWithObject:trackRequest ] onCIImage:image error:&error ];
if (error)
{
NSLog(@"error at %d", i);
}
}
}
}
It's appear for i==16
Error Domain=com.apple.vis Code=9 "Internal error: Exceeded maximum allowed number of Trackers for a tracker type: VNRectangleTrackerType" UserInfo={NSLocalizedDescription=Internal error: Exceeded maximum allowed number of Trackers for a tracker type: VNRectangleTrackerType}
No memory leak detected by Instruments.
EDITED
I fix it in my way, maybe it help someone. iOS 16 don't release VNSequenceRequestHandler after nil it, you need performRequests with new VNTrackRectangleRequest.lastFrame = YES; on it.
if (@available(iOS 16.0, *))
{
VNTrackRectangleRequest * trackRequest = [ [ VNTrackRectangleRequest alloc ] initWithRectangleObservation:lastObservation ];
trackRequest.lastFrame = YES;
requestArray = [ NSArray arrayWithObject:trackRequest ];
[ sequenceRequestHandler performRequests:requestArray onCIImage:[ CIImage new ] error:nil ];
}
Upvotes: 2
Views: 439