2012-12-19 2 views
0

나는 쓰기 :Objective-C NSNumber - 선언되지 않은 식별자?

NSNumber *aNumber = [NSNumber numberWithInt: 0]; 
NSNumber *bNumber = [NSNumber numberWithInt: [aNumber intValue] + 5]; 

이유는 무엇 인 aNumber이 bNumber의 줄에 선언되지 않은 말합니다이 경고를받을 수 있나요?

편집 :

이 코드 :

인 aNumber 라인에
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 

, 나는 불만 "예상 표현을"얻고 bNumber에 :

NSNumber *aNumber = [NSNumber numberWithInt: 0]; 
    NSNumber *bNumber = [NSNumber numberWithInt: [aNumber intValue] + 5]; 
    return [NSString stringWithFormat:@"%ld", (long)bNumber]; 

이 방법에 사용되는 라인, 나는 "알 수없는 수신기 'aNumber'; 당신 NSNumber 의미"? 그 이유는 무엇입니까?

편집 2 :

switch (component){ 
    case 0: 
     NSNumber *aNumber = [NSNumber numberWithInt: 0]; 
     NSNumber *bNumber = [NSNumber numberWithInt: [aNumber intValue] + 5]; 
     return [NSString stringWithFormat:@"%ld", (long)bNumber]; 
     break; 
    case 1: 
     //.... 
    break; 
    case 2: 
     //.... 
    break; 
} 

은 내가 switch 문 내부에 아무것도를 선언 할 수 없습니다 의심?

+3

이것은 나를 위해 완벽하게 컴파일됩니다. – dasblinkenlight

+1

저도이 코드에 아무런 문제가 없습니다 –

+0

"bNumber 5" – laxonline

답변

3

"예상 표현"오류가 매우 ofthen 전에 라인 (들)의 일부 구문 결함에 의해 발생하는이 코드를

NSLog(@"Value : %@",[self convert]); 

-(NSString*)convert 
{ 
    NSNumber *aNumber = [NSNumber numberWithInt: 0]; 
    NSNumber *bNumber = [NSNumber numberWithInt: [aNumber intValue] + 5]; 
    return [NSString stringWithFormat:@"%ld", (long)([bNumber longValue])]; 
} 

감사를 사용할 수 있습니다. aNumber 줄 위의 줄을보십시오. 또는 오류를 식별 할 수없는 경우 해당 행을 우리와 공유하십시오.

편집 : 편집 해 주셔서 감사합니다. 이 경우 대답은 switch/case 문 내에서 변수를 선언 할 수 없다는 것입니다. 당신이 정말로 다음 조항 경우에 스위치/케이스에서 프로그램을 변경해야 할 경우 분기의 ​​범위 내에서 선언해야하는 경우

NSNumber *aNumber; 
NSNumber *bNumber; 
switch (component){ 
    case 0: 
     aNumber = [NSNumber numberWithInt: 0]; 
     bNumber = [NSNumber numberWithInt: [aNumber intValue] + 5]; 
     return [NSString stringWithFormat:@"%ld", (long)bNumber]; 
     break; 
    case 1: 
     //.... 
    break; 
    case 2: 
     //.... 
    break; 
} 

: 그것은이 방식으로 작동합니다. if 절의 본문에서 지역 변수를 쉽게 선언 할 수 있습니다.

+0

수정 사항을 추가했습니다. – GourmetFan

+0

이 문제를 명확히 해 주셔서 감사합니다. :) – GourmetFan

+0

'stringWithFormat' 줄에 여전히 오류가 있음에 유의하십시오. 'NSNumber * bNumber'를'long'으로 형변환하면 예상 결과가 나오지 않습니다. '[bNumber longValue]'를 사용해야합니다 (Mohd Kalimullah Sheikh의 답변에서와 같이). –

0

당신은

+0

aNumber-line에서 0에서 10으로 변경 한 코드와 정확히 똑같은 코드를 사용하지 않았으며 "오류가 발생하지 않음"이라고합니다 : P – GourmetFan

+0

아니요 iPhone 응용 프로그램 및 Mac 응용 프로그램에 0 값을 넣은 후에도 확인하고 있습니다. –

+0

당신의 스크린 샷을 공유 하시겠습니까 –