我的班級的一些方法需要知道班級已加載多少次。我需要一個Singleton嗎,還是有其他方法可以做到這一點?是否有靜態變量,我可以附加到類,然後只增加他們每次viewDidLoad?如何計算自從應用程序啓動以來已加載視圖的次數?
當應用程序啓動時,該值被重置(= 0)。我不是一個很大的單身朋友,因爲這是Objective-C中方法的一個很大的開銷;)
我的班級的一些方法需要知道班級已加載多少次。我需要一個Singleton嗎,還是有其他方法可以做到這一點?是否有靜態變量,我可以附加到類,然後只增加他們每次viewDidLoad?如何計算自從應用程序啓動以來已加載視圖的次數?
當應用程序啓動時,該值被重置(= 0)。我不是一個很大的單身朋友,因爲這是Objective-C中方法的一個很大的開銷;)
如果你是多少次視圖已經被加載(顯示),那麼請繼續閱讀:)
負載可能只是發生一次(即使你導航來回形式)之後。 如果您在視圖出現多少次後才創建一個靜態字段並在viewWillAppear中增加其值。
static NSUInteger countAppear = 0;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
countAppear++;
NSLog(@"CountAppear %d", countAppear);
}
通過「班級加載了多少次」,我假設你指的是多少個對象類已初始化?這個類本身只加載一次。
static NSUInteger numberOfInitializations = 0;
- (id)init
{
self = [super init];
if (self)
{
++numberOfInitializations;
// other stuff
}
return self;
}
- (void)someOtherMethodThatNeedsToKnow
{
NSLog(@"Current count is %d", numberOfInitializations);
}
- [UIViewController的viewDidLoad中]可能是你想要的,但記住,意見可以,如果他們當內存不足的情況會不顯示被卸載。
另外請記住,如果您使用的視圖,如果您從NIB加載它們,您需要重寫-initWithCoder:,而如果它們是以編程方式創建的,則是-initWithFrame :.