Wie man userinfo aus NSNotification in swift 3

Bekam ich diese Fehlermeldung in swift3:

Cannot convert value of type [AnyHashable : Any] to type NSDictionary in coercion.

Mein Code ist:

  func downloadProgress(notification:NSNotification){

    if let userInfo = notification.userInfo as NSDictionary
    {
         print(userInfo) //[AnyHashable("progressPercentage"): 0.82530790852915281]

      if let progressValue = userInfo["progressPercentage"] as? Float {
        if progressValue > 0.01{

        }
      }
    }
  }

Den tatsächlichen userInfo Wert ist ["progressPercentage": 0.82530790852915281] aber seine gedruckten als [AnyHashable("progressPercentage"): 0.82530790852915281] und nicht die Befriedigung der if Zustand.

Edit:

Kein Glück für notification.userInfo as? [AnyHashable: Any], Aber jetzt arbeitet für notification.userInfo as? [String: AnyObject] und notification.userInfo as? [String: Any]

Wie man userinfo aus NSNotification in swift 3

Wie man userinfo aus NSNotification in swift 3

  • Wie wäre notification.userInfo as? [String: AnyObject]?
  • Warum brauchen Sie, um zu wirken, sowieso?
  • casting zu [String: AnyObject] funktioniert jetzt
  • werden Sie gesehen, meine Antwort habe ich deutlich erwähnt der Punkt, wenn Sie wissen, die Art verwenden [String: Any] für swift3 , wenn Sie verwendet werden [String: AnyObject] dies ist für swift2
  • yep, die ich verwendet [String: Any]
Schreibe einen Kommentar