我做了一個應用程序,我想添加功能,當應用程序的互聯網可達性發生變化時通知用戶。通知用戶可達性(阿什利米爾斯的可達性)
我使用Ashley Mills的Reachability.swift文件。
現在我明白它是如何工作的,所以我放置了代碼,當互聯網可訪問性發生變化時,它將在appDelegate中打印它的狀態。
但是,當我試圖把警報用戶沒有互聯網連接的功能,它會得到一個錯誤。
這裏是我的代碼在應用程序委託。
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var reachability : Reachability?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
do {
let reachability = try Reachability.reachabilityForInternetConnection()
self.reachability = reachability
} catch ReachabilityError.FailedToCreateWithAddress(let address) {
}
catch {}
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: reachability)
do {
try reachability?.startNotifier()
} catch {}
return true
}
func reachabilityChanged(notification: NSNotification) {
let reachability = notification.object as! Reachability
if reachability.isReachable() {
print("reached")
} else {
print("not reached")
}
}
這很好。 然而,代碼的viewController,
class ViewController: UIViewController {
var reachability : Reachability?
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "HeyUserInternetDoesntWork", name: ReachabilityChangedNotification, object: nil)
//get call from appDelegate Notification.
}
func HeyUserInternetDoesntWork() {
if reachability!.isReachable() {
print("notify User working")
} else {
print("Notify user not working")
}
}
意外發現零而展開的可選值
它得到這個錯誤。
我打算在工作後提醒用戶的代碼。
的問題在這裏,
我怎樣才能讓這項工作? 它不一定要用那種方法,但我想繼續使用NSNotification。 其實我是一個編碼的新人,所以請詳細解釋一下。
做{ 讓利可達=嘗試Reachability.reachabilityForInternetConnection() self.reachability =可達 }趕上ReachabilityError.FailedToCreateWithAddress(讓地址){ } 趕上{} 我把這個,而不是你的初始化屬性,那麼工作正常!謝謝 –
哦,多一個,我寫警告代碼,但我有這個錯誤。 > 2015-11-07 00:50:42.629 practiceParse [4799:2278456]試圖在釋放視圖控制器時加載視圖控制器的視圖是不允許的,並且可能導致未定義的行爲,你知道什麼是錯誤的嗎? –
請問這是一個新的問題 –