'[(UIView)]' ist nicht identisch mit 'UInt8' bei Verwendung von + = in Xcode 6 Beta 5. Verwenden Sie stattdessen die append-Methode?

7

Ich habe + = zu einer UIView zu einem Array verwendet, und das scheint nicht mehr zu funktionieren. Die Zeile

%Vor%

Liefert einen Fehler '[(UIView)]' ist nicht identisch mit 'UInt8'

Hier ist ein Teil der Methode. Beachten Sie, dass hitTest ab Xcode 6 beta 5 nun optional zurückgibt, also war es notwendig,

zu sagen %Vor%

statt

%Vor%

in der 'if' Anweisung.

%Vor%

... Rest der Methode entfällt

    
kasplat 04.08.2014, 21:47
quelle

3 Antworten

21

Das hat sich in der letzten Version geändert. Aus den Beta 5 Release Notes:

  

Der Operator += für Arrays verkettet nur Arrays, er hängt kein Element an. Dies löst Mehrdeutigkeiten, die mit Any , AnyObject und verwandten Typen arbeiten.

Wenn also die linke Seite von += ein Array ist, muss das jetzt auch richtig sein.

so:

%Vor%

Oder wenn Sie wirklich += verwenden möchten, könnten Sie wahrscheinlich Folgendes tun:

%Vor%

Aber das wäre ein bisschen albern. Verwenden Sie append wie die Fehlermeldung suggeriert.

    
Alex Wayne 04.08.2014, 22:09
quelle
0

Die Lösung scheint zu sein, dass Sie die Append-Methode für das Array anstelle von + = verwenden müssen. Ich kenne den Grund dafür nicht, daher könnte eine andere Antwort geeigneter sein.

Anstelle von

%Vor%

verwenden

%Vor%

Beachten Sie, dass die UIView, die von hitTest zurückgegeben wurde, optional ab Xcode 6 Beta 5 ist.

Ich habe überprüft, dass dies ein allgemeines Problem mit Arrays mit dem folgenden Spielplatzbeispiel ist. Ein Fehlerbericht wurde an Apple gesendet.

%Vor%

Es gibt eine zusätzliche Komplexität, wenn Sie versuchen, ein Tupel und vielleicht andere Typen anzuhängen.

%Vor%

Das verdient wahrscheinlich eine eigene Frage, obwohl ich denke, dass es nur ein weiterer Fehler ist, also habe ich es wieder bei Apple veröffentlicht.

    
kasplat 04.08.2014 21:47
quelle
0

Das Hinzufügen von Objekten im Array dropSound + = hitView wurde auf diese Weise in der letzten Version entfernt. Sie können ein Element im Array hinzufügen, indem Sie die folgende Syntax verwenden: dropsFound + = [hitView] oder drops- found.append (hitView)

    
sohail059 02.11.2014 20:39
quelle

Tags und Links