2015-04-24 8 views
7

Update auf Xcode 6.3.1 mit neuem Swift 1.2, die alte Methode ändere auf count, aber wenn ich umstelle, verwende immer count werfen diese Fehlermeldung aus:Swift 1.2 kann 'count' mit einer Argumentliste vom Typ '(String)' nicht aufrufen

nicht ‚count‘ mit einem Argument Liste vom Typ ‚(String)‘

Dieser Ausschnitt ist ich von Apple doc kopiert, aber die Arbeit aufrufen kann immer noch nicht.

func printAndCount(stringToPrint: String) -> Int { 
    println(stringToPrint) 
    return count(stringToPrint) 
} 

func printWithoutCounting(stringToPrint: String) { 
    printAndCount(stringToPrint) 
} 

printAndCount("hello, world") 
+2

Dieser Code kompiliert und läuft ohne Probleme in meinem Xcode 6.3.1. –

+0

möglich Duplikat [Stringlänge in Swift 1.2 und Swift 2.0] (http://stackoverflow.com/questions/29575140/string-length-in-swift-1-2-and-swift-2-0) –

Antwort

-1

Haben Sie versucht, eine saubere und bauen? Es funktioniert hier.

+0

Nun, Ich erschaffe einen neuen Spielplatz und der Code funktioniert gut. Ich schätze, es liegt daran, dass die vorherige Version des Playground Swift versaut hat. – goldenlimit

+0

Manchmal müssen Sie es nur neu laden (durch Beenden von Xcode oder Ausschneiden und Einfügen von Code). –

-1

Nun, erstelle ich einen neuen Spielplatz und kopieren Sie den Code funktioniert gut. Ich schätze, es liegt daran, dass die vorherige Version des Playground Swift versaut hat. Erstellen Sie ein neues Projekt funktioniert gut.

3

Haben deklarieren Sie die Variable „count“ im gleichen Umfang? Wenn ja, sollten Sie den Variablennamen ändern. Und versuche wieder zu bauen.

+0

Scheint wie ein Fehler für mich. – MattD

+0

Doh. Es handelt sich nicht um einen Fehler, da sich das Überschreiben des Bereichs wie erwartet verhält, aber es ist ein einfacher Fehler, und die Fehlermeldung ist nicht hilfreich. – SimplGy

4

Versuchen Sie, die globale count Funktion mit dem Swift Modulpräfix wie folgt aufrufen:

Swift.count(stringToPoint)

Z.B. Beim Erweitern des Array-Typs gibt es auch eine Eigenschaft namens count, und somit gibt es einen Namenskonflikt.

+0

Ich bin mir nicht sicher, ob das ein Fehler ist, aber durch Hinzufügen aller Swift-Modul-Präfixe konnte ich dieses Problem lösen! Toller Tipp Klaas, du hast mir den Tag gerettet! –

2

Ich hatte das gleiche Problem, und es machte mich verrückt.

es zu lösen, habe ich:

myString.characters.count 

Bingo.

+0

Ich hatte auch das gleiche Problem und die Vorsilbe 'Swift' funktionierte nicht für mich. Aber deine Antwort hat tatsächlich funktioniert. Keine Ahnung, wie dieser Fehler zustande kam –

+0

Oh gut! Ich bin froh, dass es geklappt hat! –

Verwandte Themen