티스토리 뷰

두 가지 질문이 있습니다. 하나의 질문이있는 것이 좋습니다.

그러나 차이로, @"2.5"NSString경우 @(2.5)됩니다 NSNumber. 텍스트 데이터와 숫자 데이터에는 큰 차이가 있습니다.

당신이 필요한 이유에 대해서는 NSNumber이 아닌 것은 NSString분명하다 : 커닝은 숫자 값입니다.

-------------------

@ () 구문을 사용하여 임의의 C 표현식을 상자에 넣을 수 있습니다. 따라서 기본적인 산술 계산을 NSNumber객체 로 바꾸는 것은 간단 합니다. 아래를 참조하십시오.

double x = 24.0;
NSNumber *result = @(x * .15);
NSLog(@"%.2f", [result doubleValue]);

NSNumber개체를 @ ""문자열로 참조 할 수도 있지만 위의 예와 같이 계산할 수는 없습니다. 귀하의 경우에는 둘 다 허용되지만 여기서 계산은 차이가 있습니다.

-------------------

사용할 때

@ "2.5"는 문자열처럼 동작합니다.

NSMutableDictionary*dictionary=[[NSMutableDictionary alloc] init];
  [dictionary setValue:@"2.8" forKey:@"Why"];;
    NSString *a =   [dictionary ValueforKey:@"Why"];
    

하지만 @ (2.8)을 사용하면 NSNumber처럼 동작합니다.

NSMutableDictionary*dictionary=[[NSMutableDictionary alloc] init];
  [dictionary setValue:@(2.8) forKey:@"Why"];;
    NSNumber *a =   [dictionary ValueforKey:@"Why"];
    
-------------------

@ (2.8)은 NSNumber의 유형입니다.

@ "2.8"은 NSString 유형입니다.

유형과 값은 둘 다 달랐습니다.



출처
https://stackoverflow.com/questions/39930069
댓글
공지사항
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30