1
因此,我正在使用Brock Wolfs答案計時在我的應用程序中的操作。實際連我定時從當我發送一個請求,使用定製事件在您的iOS應用程序與自定義定時器NSObject
NSURLConnection
直到此刻我的服務器一旦我在
connectionDidFinishLoading
下載完所有這一切再審數據然而對於一些奇怪的原因這個解決方案不工作,它保持0.00秒的回覆。即使實際事件需要大約8秒使用斷點。
這是我的版本的Brock的代碼(精確副本)
Timer.h
#import <Foundation/Foundation.h>
@interface Timer : NSObject{
NSDate *start;
NSDate *end;
}
- (void) startTimer;
- (void) stopTimer;
- (double) timeElapsedInSeconds;
- (double) timeElapsedInMilliseconds;
- (double) timeElapsedInMinutes;
@end
Timer.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]);
//..
}
任何幫助,將不勝感激。
我以爲我在myClass.h中做了什麼創建該實例?所以我可以在myClass.m中全局使用它,如果我把** Timer * timer = [[Timer alloc] init]; **與** [timer timerStart]相同的方法; **然後我必須使用** [timer stopTimer]; **以相同的方法。 – HurkNburkS
@HurkNburkS,不,在.h你只是創建一個屬性來指向一個Timer實例,它不會創建一個。但是我在我的文章中發現了一個錯誤(我已經更正了) - 創建實例時,應該將其設置爲您創建的屬性,所以self.timer。 – rdelmar