2016-08-04 79 views
7

Ich konvertiere ein Swift iOS-Projekt mit Xcode 8 Beta 4 in Swift 3.0. Die Absolutwertfunktion ist nicht verfügbar. Hier ist ein Codebeispiel ...Absolutwertfunktion abs() in Swift 3.0 nicht verfügbar. Benutze abs (_ :) freie Funktion?

let myInt = -3 
let myAbsoluteInt = abs(myInt) 

Die zweite Zeile führt zu einem Fehler, der besagt: 'abs' is unavailable: Please use the 'abs(_:)' free function.

Ideen?

+1

* Ihr Code funktioniert in Xcode 8 Beta 4 *. Ich nehme an, Sie haben ein anderes Problem, das diese irreführende Fehlermeldung verursacht. Was sind deine Importe? Vielleicht gibt es einen Konflikt. "Säubere" auch dein Projekt. // Ein * schneller Workaround * könnte der vollständige Typ sein: 'let myAbsoluteInt = Swift.abs (myInt)'. – Moritz

+1

Scheint [funktioniert gut] (http://swiftlang.ng.bluemix.net/#/repl/57a36665febcdeea752f2edc) – Alexander

+0

@EricAya, Sie hatten Recht. Es gab einen Konflikt. Swift.abs (myInt) löste es. Vielen Dank! – ninefifteen

Antwort

8

Der Code du uns zeigen, in Xcode 8 Beta funktioniert für mich 4.

I Angenommen, Sie haben ein anderes, anderes Problem, das diese irreführende Fehlermeldung verursacht.

Zum Beispiel könnte es ein Konflikt sein, wenn Sie andere Bibliotheken importiert haben.

Eine schnelle Abhilfe wäre die komplette Art zu verwenden:

let myAbsoluteInt = Swift.abs(myInt) 
0

Sie können explizite Int als Parameter versuchen, wie hier erwähnt es ein Fehler sein kann: Ambiguous use of operator '-' in Swift with 'abs()'

let myInt:Int = -3 
let myAbsoluteInt = abs(myInt) 
+0

Wie machst du das umgekehrt? Mache die positive ganze Zahl negativ? – AdrianGutierrez

+0

@AdrianGutierrez, würden Sie den unären "-" Operator auf den absoluten Wert verwenden: Lassen Sie myAlwaysNegativeInt = -abs (myInt) – ghostatron

+0

genial! Danke @conarch – AdrianGutierrez