ios - 使用自定义 Timer NSObject 在你的 ios 应用程序中计时事件

标签 ios timer nsdate nsurlconnection

所以我正在使用 Brock Wolfs回答在我的应用程序中安排一个 Action 。我的实际时间是从我使用

向我的服务器发送请求时开始的
NSURLConnection

直到我完成从

中的那个请求下载所有数据的那一刻
connectionDidFinishLoading

但是由于某些奇怪的原因,这个解决方案不起作用,它一直以 0.00 秒回复..即使实际事件使用断点大约需要 8 秒。

这是我的 Brock 代码版本(精确副本)

定时器.h

#import <Foundation/Foundation.h>

@interface Timer : NSObject{
    NSDate *start;
    NSDate *end;
}

- (void) startTimer;
- (void) stopTimer;
- (double) timeElapsedInSeconds;
- (double) timeElapsedInMilliseconds;
- (double) timeElapsedInMinutes;


@end

定时器.m

#import "Timer.h"

@implementation Timer

- (id) init {
    self = [super init];
    if (self != nil) {
        start = nil;
        end = nil;
    }
    return self;
}

- (void) startTimer {
    start = [NSDate date];
}

- (void) stopTimer {
    end = [NSDate date];
}

- (double) timeElapsedInSeconds {
    return [end timeIntervalSinceDate:start];
}

- (double) timeElapsedInMilliseconds {
    return [self timeElapsedInSeconds] * 1000.0f;
}

- (double) timeElapsedInMinutes {
    return [self timeElapsedInSeconds] / 60.0f;
}

@end

然后在类里面我要使用它

我的类.h

#import "Timer.h"

Timer *timer;
//..
@property (strong, nonatomic) Timer *timer;

我的类.m

@synthesize timer;
//..

- (IBAction)vehicleSearchRequest:(NSData *)postBodyData
{
//..
[timer startTimer];

        NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];

//..
}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
//..
[timer stopTimer]; // comes back as 0.000

        NSLog(@"Total time was: %lf milliseconds", [timer timeElapsedInMilliseconds]);
//..
}

如有任何帮助,我们将不胜感激。

最佳答案

它不起作用的原因一点都不奇怪。您从未创建过 Timer 实例。在 [timer timerStart] 之前插入此行:

self.timer = [[Timer alloc] init];

关于ios - 使用自定义 Timer NSObject 在你的 ios 应用程序中计时事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13794294/

相关文章:

ios - 为什么UIToolbar和UITabBar中的项目属性是(复制)属性,而不是(保留)属性?

ios - 单选按钮未选择和取消选择

C# 在特定时间执行函数

swift - 我应该使用未命名的 Timer 还是 Dispatch asyncAfter 来延迟 1 次?

iOS当前时间需要时区吗?

ios - 使用适用于 iOS 的 AddThis SDK,需要更改默认 Twitter 文本的 "via @AddThis"

iphone - 如何从 messageviewcontroller 中删除状态栏?

java - GUI计时器不停止

objective-c - 计算两个日期之间的白天时间和夜间时间

Swift 每 x 天创建本地通知