2016-08-04 18 views
7

Bir Swift iOS projesini Xcode 8 Beta 4 kullanarak Swift 3.0'a dönüştürüyorum. Mutlak değer işlevi kullanılamıyor. 'abs' is unavailable: Please use the 'abs(_:)' free function: İşte bir kod örneği ... belirten bir hataMutlak değer işlevi abs() Swift 3.0'da kullanılamaz. Abs (_ :) ücretsiz işlevini kullan?

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

İkinci satır sonuçları olduğunu.

Fikirler?

+1

* E kodu Xcode 8 beta 4 * çalışır:

Hızlı geçici çözüm tam türünü kullanmak olacaktır. Bu yanıltıcı hata mesajına neden olan başka bir sorun olduğunu varsayalım. İthalatınız nedir? Belki bir çatışma var. Ayrıca projeni "temizle". // A * hızlı bir çözüm * tam türünü kullanmak olabilir: 'izin myAbsoluteInt = Swift.abs (myInt)'. – Moritz

+1

[İyi çalışıyor] gibi görünüyor (http://swiftlang.ng.bluemix.net/#/repl/57a36665febcdeea752f2edc) – Alexander

+0

@EricAya, siz haklısınız. Bir çatışma vardı. Swift.abs (myInt) çözdü. Teşekkürler! – ninefifteen

cevap

8

Bu yanıltıcı hata mesajına neden olan başka bir farklı sorununuz olduğunu varsayalım. Örneğin, başka kitaplıkları içe aktardıysanız, çakışma olabilir.

let myAbsoluteInt = Swift.abs(myInt) 
0

Burada sözü bir hata olabilir gibi parametre olarak açık Int deneyebilirsiniz: Ambiguous use of operator '-' in Swift with 'abs()'

Bize gösteriyorsanız kodu Xcode 8 beta 4.

I benim için çalışıyor

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

Bunu ters yönde nasıl yaparsınız. Pozitif tamsayıyı negatif yap? – AdrianGutierrez

+0

@AdrianGutierrez, mutlak değerde tekil "-" operatörünü kullanırsınız: izin ver myAlwaysNegativeInt = -abs (myInt) – ghostatron

+0

harika! Teşekkürler @conarch – AdrianGutierrez