2013-10-26 2 views
0

기본적으로 임의의 문자와 그 문자와 관련된 포인트를 plist에서 가져와야합니다. 곧 내가 될거야이 작업을 얻을로 enter image description hereplist 파일의 사전에 중첩 된 배열의 임의 값에 어떻게 액세스합니까?

: 솔직히 내 PLIST이 작업을 수행 할 수있는 최선의 방법으로 설정이 확실하지 않다, 나는 전에 PLIST 함께 일한 적이 각 글자가 연관된 포인트가있는 plist에 CZ를 추가합니다. 나는 방금 Sprite Kit를 배우고 배우기위한 기본적인 단어 타일 게임을 만들었습니다.

지금까지 plist 파일에 액세스 할 수 있었지만 임의의 문자와 점을 얻는 행운을 얻지 못했습니다. 모든 것을 시도 할 때 모든 종류의 오류가 발생합니다.

Here's my code so far to access the plist: 
     NSString* fileName = @"letters.plist"; 
     NSString* filepath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName]; 

     NSDictionary* lettersPlist = [NSDictionary dictionaryWithContentsOfFile:filepath]; 
     NSDictionary* letters = lettersPlist[@"letters"]; 

그래서 임의의 문자를 어떻게 얻을 수 있습니까? 그리고 이것을 할 수있는 더 좋은 방법이 있습니까?

답변

4

letters 배열의 항목 수와 0 사이의 임의의 숫자를 가져 와서 정보를 가져 오십시오. 예 : 코드 계속 :

u_int32_t bound = (u_int32_t)[letters count]; 
NSDictionary* randomLetterInfo = letters[arc4random_uniform(bound)]; 
NSString* randomLetter = randomLetterInfo[@"Letter"]; 
NSString* points = randomLetterInfo[@"Points"]; // points are a string in your plist 
+0

니스! 방금 당신이 제안한 것을 한 다음 문자 포인터를 NSArray로 변경해야만했습니다. – Scott

+0

@Scotty 오 죄송합니다, plist의 'Array' 이후 예제 코드에'Dictionary '가 표시되지 않았습니다.) 미안합니다. –

+0

전혀 문제가 없습니다. 내가받은 오류로 나는 내가해야 할 일이 꽤 분명했다. – Scott

관련 문제