У меня никогда не было проблем с использованием инструментов для обнаружения утечек в моих предыдущих приложениях, но по какой-то причине я не могу заставить его обнаруживать какие-либо утечки в моем текущем приложении. Я даже создал некоторые утечки, чтобы попытаться заставить его что-то сделать. Я пробовал свое приложение как ARC и не ARC, но это ничего не меняет. Независимо от того, что я делаю, утечек не обнаружено.Профайлер xcode не обнаруживает утечки в моем приложении
BTW, это приложение cocos3d; не так ли это имеет значение?
Я дошел до учебника Рэя (http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode), который при тестировании кода образца вызывает обнаружение утечек. Я скопировал оскорбительный код в свое приложение и снова попробовал, как с симулятором, так и с устройством, и все равно ничего. Вот код, который я использовал, чтобы попытаться создать утечки:
- (IBAction)rotateTapped:(id)sender {
NSLog(@"settingsButtonPushed");
UIImage *currentImage = _imageView.image;
CGImageRef currentCGImage = currentImage.CGImage;
CGSize originalSize = currentImage.size;
CGSize rotatedSize = CGSizeMake(originalSize.height, originalSize.width);
CGContextRef context = CGBitmapContextCreate(NULL,
rotatedSize.width,
rotatedSize.height,
CGImageGetBitsPerComponent(currentCGImage),
CGImageGetBitsPerPixel(currentCGImage) * rotatedSize.width,
CGImageGetColorSpace(currentCGImage),
CGImageGetBitmapInfo(currentCGImage));
CGContextTranslateCTM(context, rotatedSize.width, 0.0f);
CGContextRotateCTM(context, M_PI_2);
CGContextDrawImage(context, (CGRect){.origin=CGPointZero, .size=originalSize}, currentCGImage);
CGImageRef newCGImage = CGBitmapContextCreateImage(context);
UIImage *newImage = [UIImage imageWithCGImage:newCGImage];
self.imageView.image = newImage;
}
Вот некоторый код мой, что я пытался целенаправленно создавать утечки (вызывая несколько раз):
// if (! self.robotViewController) {
robotViewController = [[RobotViewController alloc] initWithNibName:@"RobotViewController" bundle:nil];
self.robotViewController.glView = self.m_glView;
self.robotViewController.delegate = self;
// }
Это просто за рулем меня сумасшедший в этот момент. Я должен просто пропустить что-то здесь, потому что это просто не имеет смысла. У кого-нибудь есть предложения?