我班级的一些方法需要知道班级加载了多少次。我是否需要单身人士,还是有其他方法可以做到这一点?是否存在我可以附加到类的静态变量,然后每次viewDidLoad只增加它们?
当应用程序启动时,该值将被重置(= 0)。我不是那么大的单身朋友,因为这是Objective-c中方法的巨大开销;)
答案 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);
}