![](/img/trans.png)
[英]How do I connect an UIBarButtonItem to the IBAction of ViewController
[英]How do I count how many times an ibaction is performed?
我即将为小型企业发布iPhone应用程序。 该应用程序有一个呼叫按钮,通过ibaction调用业务。 我想知道我是否可以找出这个动作发生了多少次,这样我就可以更好地了解应用程序的有效性,以及如何实现它。
谢谢你的时间。
您可以使用一种简单的方法实现Web服务,该方法将增加服务器上的计数器。 每次用户点击按钮时都会异步调用它。 我会这样做:
#define TAP_COUNT_KEY @"tapcnt"
#define MAKE_URL(X) [NSURL URLWithString:[NSString stringWithFormat:@"http://my_service_address?cnt=%d", X]]
dispatch_queue_t serviceQueue = dispatch_queue_create("Tap counter queue", NULL);
dispatch_async(serviceQueue, ^{
NSUInteger counter = [[NSUserDefaults standardUserDefaults] integerForKey:TAP_COUNT_KEY] + 1;
NSURL *serviceUrl = MAKE_URL(counter);
NSError *error = nil;
[NSString stringWithContentsOfURL:serviceUrl encoding:NSUTF8StringEncoding error:&error];
if (error)
NSLog(@"%@", [error localizedDescription]);
else
counter = 0;
[[NSUserDefaults standardUserDefaults] setInteger:counter forKey:TAP_COUNT_KEY];
});
dispatch_release(serviceQueue);
在IBAction方法上,您可以将计数器增加+1。 然后,您可以通过键值对将其存储到NSUserDefaults
。 每一次,增加计数器并存储它。 因此,它将保持计数器状态,直到卸载应用程序。
int counter;
-(IBAction)click:(id)sender
{
NSUserDefaults *_countDefaults = [NSUserDefaults standardUserDefaults];
counter = [[_countDefaults integerForKey:@"Counter"] intValue];
counter++;
[_countDefaults setInteger:counter forKey:@"Counter"];
[_countDefaults synchronize];
}
希望你会明白的。
谢谢。
您可以增加按钮标记值并在任意位置访问它,
-(IBAction)btnPanic:(id)sender
{
UIButton *btn=(UIButton *)sender;
btn.tag=btn.tag+1;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.