2010-04-01 2 views
0

NSArray에서 값을 가져 오기 위해 값의 id 값으로 을 사용했습니다. 이제 그것을 2 차원 float 배열 [] []에 저장하려고합니다. 배열에 값을 할당하려고하면 할당 할 때 호환되지 않는 유형의 오류가 발생합니다. 값을 캐스팅하려고했지만 부동 소수점 값이 예상되는 곳에 포인터 값이 사용되었습니다. 값을 2 차원 배열에 저장해야합니다. 어떻게 만들 수 있습니까? 감사합니다. enemyDetal.txt에서 float 유형의 배열에 id 값을 저장할 수 있습니까?

@implementation fromFileRead1 
NSString *fileNameString; 
int numberOfEnemies, numberOfValues; 
-(id)init 
{ 
    if((self = [super init])) 
    { 
     NSString *path = @"/Users/sridhar/Desktop/Projects/exampleOnFile2/enemyDetals.txt"; 
     NSString *contentsOfFile = [[NSString alloc] initWithContentsOfFile:path]; 
     NSArray *lines = [contentsOfFile componentsSeparatedByString:@"\n"]; 
     numberOfEnemies = [lines count]; 
     NSLog(@"The number of Lines: %d", numberOfEnemies); 
     for (id line in lines) 
     { 
      NSLog(@"Line %@", line); 
      NSString *string1 = line; 
      NSArray *split1 = [string1 componentsSeparatedByString:@","]; 
      numberOfValues = [split1 count]; 
      NSLog(@"The number of values in Row: %d", numberOfValues); 
      for (id value in split1) 
      { 
       NSLog(@"value %@", value); 
       float value1; 
       value1 = [split1 objectAtIndex:2]); 
       NSLog(@"VAlue of Value1 at index 2: %f", value1); 
      } 
     } 
    } 
    return self; 
} 
@end 

나는 float 배열에서 객체 (예를 들어, ID)를 저장

1,3,3 
2,3,2.8 
10,2,1.6 
+0

일부 코드를 표시하십시오. –

답변

2

가장 확실 원하지 무엇을 가지고 있고, 당신에게 이상한 결과를 줄 것이다.

질문은 당신이 정말로하고 싶은 것입니다. 배열에 float 값을 포함하는 NSNumber 객체가있는 경우 [value floatValue]을 사용하여 객체를 float 프리미티브로 변환 할 수 있습니다.

실제로 플로트로 포인터를 저장하려는 경우 (float)((int)value))을 시도하십시오. 이 일 수 있지만 포인터를 다시 검색 할 가능성이 거의 없음을 경고해야합니다.

+0

나는 내 문제를 잘 설명하지 않았다고 생각한다. 나는 당신이 주어진 해결책을 시도했다. 그것은 어떤 오류도주지 않지만 결과는 2322222.000000과 같은 큰 부동 값이다. 나는 나의 프로그램을 편집했다. 감사합니다. –

+1

아, 값이 NSString입니다. 초기 값 (부동 소수점과 같은)을 얻으려면 먼저 변환해야합니다. NSString은 float 값을 제공하므로 loop에서 다음과 같이 할 수 있습니다 :'float value1 = [[split1 objectAtIndex : 2] floatValue];'. 주목할 점은 Objective-C는 Java처럼 autobox/unbox privmitives를 사용하지 않는다는 것입니다. – Alfonso

+0

안녕하세요, 도움 주셔서 감사합니다. –