3
A
回答
0
你應該使用ASIHTTPRequest使用的良好做法。 他們使用Reachability這是因爲他們說,在更換類的一滴Apple 發展我希望這將有助於
0
一個標準方法是使用可達測試網絡的可用性。它可以下載here。您只需在項目中使用Reachability.h和Reachability.m。
我個人的偏好是做到以下幾點 -
1添加的可達性文件
2您要記住/揭露項目中的每個網絡測試創建BOOL性能 - 我有一個谷歌測試並在下面的谷歌地圖測試。
3在你的appDidFinishLoading方法中調用[self assertainNetworkReachability]。
#pragma mark -
#pragma mark Reachability
-(void)assertainNetworkReachability {
[self performSelectorInBackground:@selector(backgroundReachabilityTests) withObject:nil];
}
-(void)backgroundReachabilityTests {
self.isInternetReachable = [self internetReachable];
self.isMapsReachable = [self mapsReachable];
self.connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(backgroundReachabilityTests) userInfo:nil repeats:NO];
}
-(BOOL)hostReachable:(NSString*)host {
Reachability *r = [Reachability reachabilityWithHostName:host];
NetworkStatus internetStatus = [r currentReachabilityStatus];
if(internetStatus == NotReachable) {
[self throwNetworkDiagnosisAlert];
return NO;
}
return YES;
}
-(BOOL)internetReachable {
return [self hostReachable:@"www.google.co.uk"];
}
-(BOOL)mapsReachable {
return [self hostReachable:@"maps.google.com"];
}
-(BOOL)isInternetGoodYetMapsUnreachable {
return (self.isInternetReachable && !self.isMapsReachable);
}
-(void)throwNetworkDiagnosisAlert {
NSString* title = @"Connectivity Problem";
NSString* message = @"You are not connected to the internet.";
if (self.isInternetGoodYetMapsUnreachable) {
message = @"Unable to connect to the Google Maps server.";
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
相關問題
- 1. Surface SDK Librarystack丟失事件
- 2. 爲什麼curl_easy_send在網絡丟失時不會返回超時
- 3. Windows Phone - 丟失網絡連接的事件處理程序
- 4. 網絡狀態丟失
- 5. 網絡丟失時通知
- 6. iAD網絡模塊丟失
- 7. 網絡連接丟失NSURLConnection
- 8. 是否有任何的網絡服務可以返回美國
- 9. Powershell如何在網絡連接上註冊事件丟失?
- 10. 消息隊列:網絡故障時消息是否丟失?
- 11. CUDA 4.0 SDK丟失文件?
- 12. 在AsyncTask期間的網絡丟失
- 13. AWS Kinesis Stream返回「ProvisionedThroughputExceededException」時數據是否丟失?
- 14. paypal returnUrl丟失sessionId返回
- 15. 發送有關丟失互聯網連接的Google Analytics事件
- 16. 是否unix SCP返回網絡問題的錯誤代碼
- 17. IOS sdk導航事件返回
- 18. NSURLDomainError 1005「網絡連接丟失」
- 19. 代碼= -1005「網絡連接丟失
- 20. NSURLConnection「丟失網絡連接」錯誤?
- 21. AsyncTask和網絡丟失問題
- 22. 優步API:網絡連接丟失
- 23. Vmware Fusion網絡配置丟失
- 24. Java:復位時網絡丟失連接
- 25. 在iPhone上丟失網絡連接
- 26. 當網絡丟失時在網絡上使用FileStream
- 27. 使用Google Analytics for iOS SDK 2.0b3時丟失的事件
- 28. XCODE Base SDK丟失
- 29. XCODE Base SDK丟失
- 30. PAYPAL C#SDK丟失
你可以幫助http://stackoverflow.com/questions/4501864/reachability-network-change-event-not-firing – Ravi 2012-01-13 09:12:59