let temp: String = "0xffeeffff"
Как преобразовать вышеуказанную строку в UInt32, потому что мне нужно сохранить ее в растровом изображении, которое принимает только UInt32
let temp: String = "0xffeeffff"
Как преобразовать вышеуказанную строку в UInt32, потому что мне нужно сохранить ее в растровом изображении, которое принимает только UInt32
Удалите «0x» из вашей строки, чтобы преобразовать ее в UInt32:
let temp = "0xffeeffff"
let result = UInt32(String(temp.characters.dropFirst(2)), radix: 16)
temp
как есть.
- person Devran Cosmo Uenal; 04.01.2016
temp
также быть 0xff
, поэтому я выбрал способ поиска и замены.
- person Devran Cosmo Uenal; 04.01.2016
String("0xff".characters.suffix(8))
результаты 0xff
. String(temp.characters.dropFirst(2))
будет работать.
- person Devran Cosmo Uenal; 04.01.2016
надеюсь, это поможет вам...
extension String {
func toUInt() -> UInt? {
if contains(self, "-") {
return nil
}
return self.withCString { cptr -> UInt? in
var endPtr : UnsafeMutablePointer<Int8> = nil
errno = 0
let result = strtoul(cptr, &endPtr, 10)
if errno != 0 || endPtr.memory != 0 {
return nil
} else {
return result
}
}
}
}