celu wyjaśnienia niejasności, co jest błąd,
NSNumber dzwoni NSNumber.init(value: X)
metody instancji obiekt NSNumber.
„etykiety Argument«(_:)
»nie dało żadnych dostępnych przeciążeń”
Kod wywołuje błąd, ponieważ NSNumber nie jest typem raczej jest to klasa z członków. "NSNumber(...)"
tworzy instancję obiektu klasy zawierającego wartość "" z (1.0/1.29)
.
To nie jest konwersja typu lub rzut jak w C/C++. gdzie próbujesz uzyskać obsada typu umożliwiającego kompilatorowi wykonywanie pracy.
float y = 1.3;
int x = int(y);
NSNumber nie jest typem jak int, float, char
błędu wchodzi w grę, ponieważ istnieje kilka sposobów, aby zadzwonić NSNumber.init(value: type)
Swift jest wymóg, że wyraźnie powiedzieć, że chcesz człon „wartość” numeru NSNumber, aby zawierał wartość x.
let localRate = NSNumber(1.0/1.29)
var y = NSNumber(0)
var b = NSNumber(false)
let localRate = NSNumber(value: 1.0/1.29)
var y = NSNumber(value: 0)
var b = NSNumber(value: false)
Może wystąpić zamieszanie, ponieważ to działa.
w = String("4")
String klasa nie wymaga etykiety argument podczas NSNumber wymaga etykietę argument „Wartość:”
Może to ze względu na to, jak traktuje NSNumber IOS jako pochodzące ze spuścizny?
Dzięki, potrzebny NSNumber (wartość: self) –
Chętnie Ci pomożemy ..:) –
Wspaniale, że to działa, ale bez wyjaśnienia, dlaczego rozwiązuje problem, nie jest zbyt pomocne. – Jim