/
MSVCLeakHunter.h
55 lines (42 loc) · 2.02 KB
/
MSVCLeakHunter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
Copyright 2012 Javier Soto (javi@mindsnacks.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#import <Foundation/Foundation.h>
/**
* @discussion set this to 0 to disable this class completely (no code will be compiled).
* It's recommended to ship a production app with this flag set to 0.
*/
#define MSVCLeakHunter_ENABLED 1
#if MSVCLeakHunter_ENABLED
/**
* @discussion this makes MSVCLeakHunter print logs when view controllers appear, disappear and are deallocated.
* This helps you track down the lyfe cycle of your view controllers.
* `MSVCLeakHunter_ENABLED` has to be set to 1 for this to work too.
*/
#define MSVCLeakHunter_EnableUIViewControllerLog 0
/**
* @discussion if a view controller hasn't been deallocated after this time after it disappeared from screen, it's considered "pottentially leaked", and a message in the log will be printed.
* Tweak this value depending on the characteristics of your app.
*/
#define kMSVCLeakHunterDisappearAndDeallocateMaxInterval 10.0f
/**
* @discussion when installed, it's going to print messages in the log whenever a view controller is not deallocated after `kMSVCLeakHunterDisappearAndDeallocateMaxInterval` seconds of disappearing from screen.
*/
@interface MSVCLeakHunter : NSObject
/**
* @discussion installs the appropiate hooks on UIViewController to start tracking the controllers.
* You have to call this method for MSVCLeakHunter to start doing its job.
* It's recommended to call this method in your `applicationDidFinishLaunchingWithOptions:` method.
*/
+ (void)install;
@end
#endif