但是最近卻遇到了TimeoutInterval沒起作用的問題
這是一般的用法:
1 2 3 4 | NSMutableURLRequest* request = [[NSMutableURLRequest alloc
initWithURL: [NSURL URLWithString: serverurl]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:240];
|
但是根據Apple官方的論壇提到 timeout預設值為240秒
只要低於這個值都會被自動忽略
所以想把timeout時間設短的人就需要自行做一個timer
1 2 3 4 5 6 7 8 9 10 11 12 | SEL sel = @selector(customCancel); NSMethodSignature* sig = [self methodSignatureForSelector:sel]; NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:sig]; [invocation setTarget:self]; [invocation setSelector:sel]; NSTimer *timer = [NSTimer timerWithTimeInterval:CUSTOM_TIMEOUT invocation:invocation repeats:NO]; [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; |
把上面這段程式跟NSMutableURLRequest放在一起
接著實作 customCancel 這個部分
1 2 3 4 5 6 | - (void)customCancel{ if (connection) { [connection release]; connection = nil; } } |
這樣就可以了!
參考資料:stackoverflow
沒有留言:
張貼留言