:
Bu benim kodudur
"türünde bir argüman listesi '(String)' ile 'sayısı' çağırmak olamaz":
i Xcode aşağıdaki hatayı alıyorum
: swift2 onlar
count
bu konuda bazı değişiklikler hızlı 1.2 kodudur yaptılar
let test1 = "ajklsdlka"//random string
let length = count(test1)//character counting
swift2 çünkü kod bir dizi uzunluğunu bulmak mümkün için
let test1 = "ajklsdlka"//random string
let length = test1.characters.count//character counting
olması gerekir.
Bu davranış esas
String.CharacterView
aynı zamanda bir dizide yineleme şeklini değiştiren unutmayın yapar iken artık SequenceType
protokole uyan hızlı 2,0 String
çünkü olur
: Yani
var password = "Meet me in St. Louis"
for character in password.characters {
if character == "e" {
print("found an e!")
} else {
}
}
Muhtemelen Xcode, bu gibi işlemler için size bir hata verecek olsa da, gerçekten dikkatli olun.
Yani bu kod (türünde bir argüman listesi '(String)' ile 'sayısı' çağırmak olamaz) sahip olduğu hatayı düzeltmek için nasıl görünmesi gerektiğini olmaktadır:
let index = rgba.startIndex.advancedBy(1)
let hex = rgba.substringFromIndex(index)
let scanner = NSScanner(string: hex)
var hexValue: CUnsignedLongLong = 0
if scanner.scanHexLongLong(&hexValue)
{
if hex.characters.count == 6 //notice the change here
{
red = CGFloat((hexValue & 0xFF0000) >> 16)/255.0
green = CGFloat((hexValue & 0x00FF00) >> 8)/255.0
blue = CGFloat(hexValue & 0x0000FF)/255.0
}
else if hex.characters.count == 8 //and here
{
red = CGFloat((hexValue & 0xFF000000) >> 24)/255.0
green = CGFloat((hexValue & 0x00FF0000) >> 16)/255.0
blue = CGFloat((hexValue & 0x0000FF00) >> 8)/255.0
alpha = CGFloat(hexValue & 0x000000FF) /255.0
}
olası yinelenen [ Swift 1.2 ve Swift 2.0'da dize uzunluğu] (http://stackoverflow.com/questions/29575140/string-length-in-swift-1-2-and-swift-2-0) – Moritz
Swift 2: hex. characters.count' – Moritz
Teşekkürler, çözümünüzü cevaplandırdığınız anda çözümünüz, API'nin github'unda da buldum. :) – f1rstsurf