gpt4 book ai didi

ios - 应用程序中的自动注销计时器?

转载 作者:行者123 更新时间:2023-11-29 01:39:19 28 4
gpt4 key购买 nike

我需要做的是这个;我将有一个计时器,它会滴答作响,当 30 分钟结束时,我会自动注销用户。但如果与应用程序有任何交互,我会将计时器重置为 30 分钟。我知道该怎么做,但我确信有更好的方法可以实现。

我要做的是创建一个单例类,它包含一个计时器并在计时器启动时发布通知。所以我在想的是,每当用户按下按钮、转到下一个屏幕等时,我都必须重置计时器。

我的问题是是否可以通过一段代码响应应用程序中的任何触摸?就像不知何故有一个父类(super class),我可以将它添加到其中,无论发生什么样的交互,它总是会重置计时器?还是我需要将代码添加到用户将与应用程序交互的所有位置?

最佳答案

你可以试试这个,子类 UIApplication 并在实现中添加以下代码

@implementation MyApplication

- (instancetype)init {
self = [super init];
if (self) {
[self reset];
}
return self;
}

- (void)reset {
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(logout) object:nil];
[self performSelector:@selector(logout) withObject:nil afterDelay:30*60];
}

- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];

[self reset];
NSLog(@"event detected");
}

- (void)logout {
NSLog(@"logout now");
}
@end

然后在main.m中这样修改实现

return UIApplicationMain(argc, argv, NSStringFromClass([MyApplication class]), NSStringFromClass([AppDelegate class]));

这里发生的事情是,- (void)sendEvent:(UIEvent *)event 方法将在每次用户事件后被调用,然后我们在 30 分钟后注册一个执行选择器请求。一旦用户在 30 分钟内触摸屏幕,取消之前的请求并注册新的请求。

关于ios - 应用程序中的自动注销计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com