2016-05-16 15 views
0

Wie ich von PubNub Updates verstanden ... Ich habe nicht verstanden !!! Bitte helfen Sie mir herauszufinden, was falsch ist und warum? enter image description herePubNub Verwendung, Swift 2.0 Update "Mehrdeutige Verwendung von 'tiefgestellten'" + "Sorted"

auch mehrdeutiger Verweis auf Mitglied 'Kunden'

client.historyForChannel(channel, start: nil, end: nil, limit: 10, withCompletion: { 
     (result: PNHistoryResult , status: PNErrorStatus) -> Void in 
     let messages = result.data.messages 
     for message in messages { 
      let date = (message["date"] as! String).getDateString() 
      if !contains(self.sections, date) { 
       self.sections.append(date) 
       self.data[date] = [ConversationMessage]() 
      } 
     }... 

aber am Anfang eines Programms erklärt wurde ...

var client: PubNub! 
+0

Sie müssen auf Compiler-Warnungen achten. Der Typ von "message.data.message" kann nicht als ein Wörterbuch angenommen werden, es ist "AnyObject", daher kann die Indizierung mit einem Index nicht erfolgreich sein. Daher der Fehler "Mehrdeutige Verwendung von Index" In unseren Rückrufen nennen wir die Instanz von 'PubNub' zu' Client', also müssen Sie 'self.client' angeben, um auf die Instanzvariable zuzugreifen oder eine der Variablen umzubenennen . Deshalb generiert der Compiler eine Warnung. Dies sind sehr einfache Compilerfehler, die durch Codierungsfehler erzeugt werden. – gurooj

+0

Sie müssen die 'messageInfo' als Dictionary darstellen, wenn Sie als solche darauf zugreifen möchten. Auf ein AnyObject kann standardmäßig nicht wie auf ein Dictionary zugegriffen werden. ? – gurooj

+0

self.client .historyForChannel (Kanal, Start: nil, end: nil, limit: 10, withCompletion: { (Ergebnis: PNHistoryResult, Status: PNErrorStatus) -> Void in } ) ...? – Oleksandr

Antwort

1

In Bezug auf mehrdeutige Verwendung von ‚Index‘ Sie müssen optional Guss messageInfo nach unten die in den erwarteten Typ

if let messageInfo = message.data.message as? [String:AnyObject] { 

Es gibt nur wenige Fälle, in denen Typenannotationen sind wirklich benötigt.

+0

Gott segne dich: D Thx)) Versucht, den AnyObject-Typ zu löschen, aber nicht D: Aber was ist falsch mit "Mehrdeutige Referenz auf Mitglied 'Client'" - client.historyforchannel (...) – Oleksandr

+0

Ich denke ' result.data.messages' muss zu etwas Spezifischerem gegossen werden. – vadian

+0

Was meinst du? – Oleksandr

0

I sortierten feste ... wie es in swift war 1,2

self.data[section]! = self.data[section]!.sort { Utils.compareDateTime($0.date, with: $1.date, order: .OrderedAscending) } 

sowieso Client Fragen bleiben ...