首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算ibaction被执行了多少次?

如何计算ibaction被执行了多少次?
EN

Stack Overflow用户
提问于 2013-06-06 18:51:17
回答 3查看 270关注 0票数 0

我即将为一家小企业发布一个iPhone应用程序。这个应用程序有一个呼叫按钮,可以通过ibaction调用业务。我想知道我是否可以找出这个动作发生了多少次,这样我就可以更好地了解这个应用程序的效率,以及如何去做。

耽误您时间,实在对不起。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-06 18:54:35

你可以用一个简单的方法来实现一个web服务,这个方法会在服务器上增加一个计数器。并在用户每次点击按钮时异步调用它。我会这样做:

代码语言:javascript
复制
#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);
票数 1
EN

Stack Overflow用户

发布于 2013-06-06 19:20:11

在IBAction方法中,可以将counter递增+1,然后通过键值对将其存储到NSUserDefaults中。每一次,增加计数器并存储它。因此它将保持计数器状态,直到应用程序被卸载。

代码语言:javascript
复制
int counter;

-(IBAction)click:(id)sender
{
     NSUserDefaults *_countDefaults = [NSUserDefaults standardUserDefaults];
     counter = [[_countDefaults integerForKey:@"Counter"] intValue];
     counter++;

     [_countDefaults setInteger:counter forKey:@"Counter"];
     [_countDefaults synchronize];       
}

希望你能有所收获。

谢谢。

票数 1
EN

Stack Overflow用户

发布于 2013-06-06 19:23:48

你可以增加你的按钮标记值,并在你想要的任何地方访问它,

代码语言:javascript
复制
-(IBAction)btnPanic:(id)sender
{
    UIButton *btn=(UIButton *)sender;
    btn.tag=btn.tag+1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16960222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档