Swift-Array - use "Enthält" der Typ AnyObject

Möchte ich die Funktion contains auf Array vom Typ AnyObject

import UIKit

var resultArray: Array<AnyObject> = Array()
resultArray.append(50)
resultArray.append(false)
resultArray.append("Test string")
let found = contains(resultArray, 50)

Bekomme ich die Fehlermeldung:

Type 'AnyObject -> L' does not conform to protocol 'IntegerLiteralConvertible'

Swift-Array - use

  • Don ' T mix-Typen in einem array, es ist nicht eine gute Praxis. In diesem Fall stellen Sie 50 ein string, so dass alle Elemente eines String-Typs.
  • Was ist dann der Zweck der AnyObject?
  • Wie Zaph schon sagte, mit AnyObject ist nicht ideal, es sei denn, Sie wirklich brauchen, um. Ein Beispiel für einen Zweck, für AnyObject ist beim schreiben oder über eine API, Holen Sie einige Informationen, die den Daten-Typ " unbestimmt von Ihnen, dem Programmierer. zB. Analysieren framework verwendet AnyObject, da Sie nicht wissen, ob, den Sie speichern einen String, Bool, Int, etc. Sie müssen dann konvertieren Sie es so bald wie möglich.
  • Ja, ich Schreibe eine API. Und dieses Array ist Klasse variable, verwendet in einem Protokoll delegate-Methode. Klasse, die das delegate-Methode zurückgeben kann jede Art von Objekt in Vollendung blockieren. Dieses Array von Objekten, die möglicherweise von einigen String-Typen oder kann einige Modal-class-Objekte. e.g "Benutzer" - Objekte auf allen index wäre dasselbe ich.e; Strings oder User. So schließlich die Arrays konvertiert werden bestimmt noch einiges geben. Aber ich weiß nicht im Voraus, welche Art von Objekten Sie wäre. Wie kann ich es nutzen, bis der Typ unbestimmt ist?
  • haben Sie einen Blick auf meine Antwort und sehen, ob das hilft. Vielleicht nicht der effizienteste Weg sein, aber es sollte sich eine Lösung für Ihr Problem 🙂
  • Ihre Verwendung von Comic Sans vermerkt ist.

InformationsquelleAutor Khawar | 2014-12-31
Schreibe einen Kommentar