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. 網絡丟失時通知
- 2. Powershell如何在網絡連接上註冊事件丟失?
- 3. 消息隊列:網絡故障時消息是否丟失?
- 4. Android SDK丟失
- 5. AWS Kinesis Stream返回「ProvisionedThroughputExceededException」時數據是否丟失?
- 6. 發送有關丟失互聯網連接的Google Analytics事件
- 7. IOS sdk導航事件返回
- 8. Vmware Fusion網絡配置丟失
- 9. Java:復位時網絡丟失連接
- 10. NSURLConnection「丟失網絡連接」錯誤?
- 11. 優步API:網絡連接丟失
- 12. 在iPhone上丟失網絡連接
- 13. XCODE Base SDK丟失
- 14. XCODE Base SDK丟失
- 15. 當網絡丟失時在網絡上使用FileStream
- 16. 檢查網絡連接是否返回錯誤結果
- 17. 基於網絡事件的編程是否真的更好......?
- 18. 重繪事件丟失了?
- 19. 使用IServerEvents.NotifyChannel丟失事件
- 20. MouseOver事件交替丟失
- 21. 丟失事件不發射
- 22. TCP數據丟失事件
- 23. 加入丟失之後,我的神經網絡比以前更加適應了。這是怎麼回事?
- 24. 是否有可能在jQuery中返回事件函數?
- 25. 傳遞vs返回(網絡)控件?
- 26. CakePHP返回丟失的數據庫表
- 27. BBC MicroPython中是否有事件回調?
- 28. 此更新是否丟失?
- 29. JavaScript變量是否丟失?
- 30. Facebook C#SDK - Api.Get(「我/事件」)不返回事件
你可以幫助http://stackoverflow.com/questions/4501864/reachability-network-change-event-not-firing – Ravi 2012-01-13 09:12:59