2009-07-16 21 views
0

我的班級的一些方法需要知道班級已加載多少次。我需要一個Singleton嗎,還是有其他方法可以做到這一點?是否有靜態變量,我可以附加到類,然後只增加他們每次viewDidLoad?如何計算自從應用程序啓動以來已加載視圖的次數?

當應用程序啓動時,該值被重置(= 0)。我不是一個很大的單身朋友,因爲這是Objective-C中方法的一個很大的開銷;)

回答

1

如果你是多少次視圖已經被加載(顯示),那麼請繼續閱讀:)

負載可能只是發生一次(即使你導航來回形式)之後。 如果您在視圖出現多少次後才創建一個靜態字段並在viewWillAppear中增加其值。

static NSUInteger countAppear = 0; 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    countAppear++; 
    NSLog(@"CountAppear %d", countAppear); 
} 
1

通過「班級加載了多少次」,我假設你指的是多少個對象類已初始化?這個類本身只加載一次。

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 :.

相關問題