如何计算自应用程序启动以来加载视图的次数?

时间:2009-07-16 21:44:13

标签: iphone cocoa-touch uikit

我班级的一些方法需要知道班级加载了多少次。我是否需要单身人士,还是有其他方法可以做到这一点?是否存在我可以附加到类的静态变量,然后每次viewDidLoad只增加它们?

当应用程序启动时,该值将被重置(= 0)。我不是那么大的单身朋友,因为这是Objective-c中方法的巨大开销;)

2 个答案:

答案 0 :(得分: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:。

答案 1 :(得分:1)

如果您在视频加载(显示)的次数之后,请继续阅读:)

加载可能只发生一次(即使您在表单中导航和导航)。 如果您在视图出现的时间之后,只需创建一个静态字段并在viewWillAppear中增加其值。

static NSUInteger countAppear = 0;

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