2015-07-03 1 views
11

Ich bin ziemlich neu Codierung Swift, also bitte entschuldigen Sie mich, wenn dieser Fehler eine einfache Antwort ist!Fehler: 'Art des Ausdrucks ist mehrdeutig ohne mehr Kontext'

Ich bekomme immer eine Fehlermeldung, die besagt "Art des Ausdrucks ist mehrdeutig ohne mehr Kontext."

Ich verstehe, was das Problem ist, ich bin nur nicht sicher, wie man es beheben. Ich habe andere Fragen zu diesem Thema beantwortet, aber keine über das Durchlaufen eines Arrays von AnyObject.

Danke!

Antwort

21

Sie können den Compiler helfen wissen, was objects ist wie folgt:

for object in objects as! [PFObject] { 
    self.timelineData.addObject(object) 
} 
+0

Jetzt kaufen! Vielen Dank! –

+0

Mein Beispiel verwendet Force-Unwrapping, vergessen Sie nicht, dass dies zum Absturz führt, wenn ein Objekt im Array kein PFObject ist. Wenn Sie der Meinung sind, dass dies der Fall sein könnte oder in Zweifelsfällen, verwenden Sie besser die optionale Bindung wie in Tom Howards Antwort. – Moritz

2
if let pfObjects = objects as? [PFObject] 
{ 
    for pfObject in pfObjects 
    { 
     self.timelineData.addObject(pfObject) 
    } 
} 

... Ausrufezeichen in Swift Code geben Sie mir die heeby jeebies.

0

Wenn Sie schreiben einige Code mag:

for (i, view) in views { 
} 

Sie müssen enumerated hinzuzufügen:

for (i, view) in views.enumerated() { 
} 

Und jetzt sollte es funktionieren.