2012-08-13 4 views
1

나는 내 plist 파일에서 항목을 계산할 수있는 질문이있어.plist에서 항목을 계산하는 방법

NSString *bundlePathofPlist = [[NSBundle mainBundle]pathForResource:@"Mything" ofType:@"plist"]; 

    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:bundlePathofPlist]; 

    NSArray *dataFromPlist = [dict valueForKey:@"some"]; 

    for(int i =0;i<[dataFromPlist count];i++) 
    { 
     //NSLog(@"%@",[dataFromPlist objectAtIndex:i]); 
     [self setTableData:[dataFromPlist count]]; 

    } 

    NSLog(@"%@", tableData); 

을하지만이 줄에 오류가 나타납니다 : 나는 시도

[self setTableData:[dataFromPlist count]]; 

Implicit conversion of 'NSUInteger' (aka 'unsigned int') to 'NSArray *' is disallowed with ARC 

경고 : 내부

Incompatible integer to pointer conversion sending 'NSUInteger' (aka 'unsigned int') to parameter of type 'NSArray *'; 
+0

@Popeye 불필요한 [xcode] 태그를 삭제 해 주셔서 감사합니다. – vikingosegundo

+0

@vikingosegundo 내가 그것을 제거했지만, 그것은 Frenck에 의해 다시 추가되었습니다 믿습니다. – Popeye

+0

@Frenck Xcode 태그를 다시 추가하지 마십시오. 이 질문에 대해서는 부적절합니다. 혼란과 소음이 발생합니다. – vikingosegundo

답변

2

setTableDataNSArray 인스턴스를 사용하는 것으로 보입니다. 당신은 루프에서 배열의 선행을 준비해야하고, 다음과 같이 한 번 설정 : 이것은 당신의 setTableData 방법은 int의 포장 NSNumber 인스턴스의 배열을 기대하고 있다고 가정

NSMutableArray *data = [NSMutableArray array]; 
for(int i =0;i<[dataFromPlist count];i++) 
{ 
    //NSLog(@"%@",[dataFromPlist objectAtIndex:i]); 
    [data addObject:[NSNumber numberWithInt:[[dataFromPlist objectAtIndex:i] count]]]; 
} 
[self setTableData:data]; 

.

+0

이 코드는 같은 수의'count' 인스턴스를'count'로 제공 할 것입니다. 분명히 그게 맞지 않아? –

+0

@KevinBallard 당신 말이 맞아요, 나는 그것이 무엇을 생각하지 않고 OP에서 스 니펫을 복사하여 붙여 넣었습니다. 그것은 고쳐야한다, 고마워! – dasblinkenlight

0

문제는 당신이 [dataFromPlist count]을 사용하고있다 당신하게 루프에 대한 말이되지 않는다. 아마도 [dataFromPlist objectAtIndex:i]을 의미했을 것입니다. 반복 다른 요소 :

for (NSArray *elt in dataFromPlist) { 
    [self setTableData:elt]; 
} 

난 당신이 -setTableData를 호출하는 이유를 궁금해 할 필요가 없지만

또는 더 관용구.

관련 문제