そのため、アプリケーションでアクションのタイミングを計るためにBrock Wolfsの回答を使用しています。実際のタイミングは、サーバーにリクエストを送信したときからです
NSURLConnection
そのリクエストからのすべてのデータのダウンロードが完了するまで、
connectionDidFinishLoading
ただし、何らかの奇妙な理由でこのソリューションが機能していないため、ブレークポイントを使用して実際のイベントに約 8 秒かかるにもかかわらず、0.00 秒で応答し続けます。
これはブロックのコードの私のバージョンです (正確なコピー)
タイマー.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
次に、クラスで使用したい
myClass.h
#import "Timer.h"
Timer *timer;
//..
@property (strong, nonatomic) Timer *timer;
myClass.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]);
//..
}
どんな助けでも大歓迎です。