我將可達性代碼整合到我的應用程序中,並且已成功運行了幾個月,但目前爲止,我只在iOS 5設備上使用它。 但是它不適用於iOS 4設備。可達性更改通知適用於iOS5,但不適用於iOS4
該通知登記如下:
- (id) init
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChange:)
name:kReachabilityChangedNotification
object:nil];
...
- (void) appBecameActive
{
...
self.reachability = [Reachability reachabilityWithHostName:[url host]];
...
[self.reachability startNotifier];
stopNotifier只獲取調用的dealloc中
問題是ReachabilityCallback沒有接到回訪電話時,有一個reachabiity的變化,但我看不到任何理由爲什麼它應該可以在iOS5上使用,但不能在iOS4上使用。
的這部分代碼是從蘋果的示例源代碼不變:
static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void *info) {
#pragma unused (target, flags)
NSCAssert(info != NULL, @"info was NULL in ReachabilityCallback");
NSCAssert([(__bridge id)info isKindOfClass:[Reachability class]], @"info was wrong class in ReachabilityCallback");
Reachability *noteObject = (__bridge Reachability *)info;
// Post a notification to notify the client that the network reachability changed.
[[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification object:noteObject];
}
如前所述,一切都已經很長一段時間對iOS5的設備上運行時工作正常,有其他人遇到過類似的問題過去將可達性代碼整合到iOS4中?
每次我與可達性工作,我鏈接SystemConfiguration框架,你在幹什麼呢? – kevboh
謝謝,但正如我所說,它可以在iO5上運行,如果沒有框架,它將無法運行。 – Gruntcakes
... [你剛剛對你的問題做了什麼?](http://stackoverflow.com/posts/10921145/revisions) – BoltClock