반응형
신속한 NSNumber에 대한 문자열
문자열을 NSNumber로 변환하는 방법을 찾았지만 코드는 Objective-C에 있습니다. 나는 그것을 신속하게 변환하려고 시도했지만 작동하지 않습니다.
내가 사용하는 코드
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42222222222"];
그리고 신속하게 나는 이것을 이런 식으로 사용하고 있습니다.
var i = NSNumberFormatter.numberFromString("42")
그러나이 코드가 작동하지 않습니다. 내가 뭘 잘못하고 있습니까?
미리 감사드립니다
스위프트 3.0
NSNumber(integer:myInteger)
변경되었습니다 NSNumber(value:myInteger)
let someString = "42222222222"
if let myInteger = Int(someString) {
let myNumber = NSNumber(value:myInteger)
}
스위프트 2.0
Int()
이와 같은 이니셜 라이저를 사용하십시오 .
let someString = "42222222222"
if let myInteger = Int(someString) {
let myNumber = NSNumber(integer:myInteger)
print(myNumber)
} else {
print("'\(someString)' did not convert to an Int")
}
문자열이 완벽하게 변환된다는 것을 이미 알고 있거나 신경 쓰지 않는 경우 한 줄로 수행 할 수 있습니다.
let myNumber = Int("42222222222")!
스위프트 1.0
toInt()
방법을 사용하십시오 .
let someString = "42222222222"
if let myInteger = someString.toInt() {
let myNumber = NSNumber(integer:myInteger)
println(myNumber)
} else {
println("'\(someString)' did not convert to an Int")
}
또는 한 줄로만 수행하십시오.
NSNumberFormatter().numberFromString("55")!.decimalValue
스위프트 2
이 시도:
var num = NSNumber.init(int: Int32("22")!)
스위프트 3.x
NSNumber.init( value: Int32("22")!)
을 사용해야하는 경우 다음 코드를 사용할 수 있습니다 NSNumberFormatter
. Wezly의 방법을 사용하는 것이 더 간단합니다.
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
if let number = formatter.numberFromString("42") {
println(number)
}
나는 빠른 3/4에서 확장을 사용하고 멋지다.
extension String {
var numberValue: NSNumber? {
if let value = Int(self) {
return NSNumber(value: value)
}
return nil
}
}
그런 다음 다음 코드를 사용하십시오.
stringVariable.numberValue
What is cool is that you don't need a chain of if
statements to unwrap the optional values. For instance,
if let _ = stringVariable, let intValue = Int(stringVariable!) {
doSomething(NSNumber.init(value: intValue))
}
can be replaced by:
doSomething(stringVariable?.numberValue)
In latest Swift:
let number = NumberFormatter().number(from: "1234")
Try Once
let myString = "123"
let myInt = (myString as NSString).integerValue
참고URL : https://stackoverflow.com/questions/28605703/string-to-nsnumber-in-swift
반응형
'Program Tip' 카테고리의 다른 글
배열의 모든 객체에 대한 속성 제거 (0) | 2020.12.06 |
---|---|
Charts.js로 애니메이션 비활성화 (0) | 2020.12.06 |
숭고한 텍스트로 원격 파일을 여는 방법 3 (0) | 2020.12.06 |
더 나은 점 : int.TryParse 또는 try {int.Parse ()} catch (0) | 2020.12.06 |
정의되지 않은 메소드`image_will_change! ' (0) | 2020.12.06 |