2012-05-19 2 views
0

나는 이것에 대해 유사한 주제의 부부를 발견했지만 그들 중 누구도 내 문제를 해결하지 못했습니다. 기본적으로 plist에있는 배열에서 nsstring을 읽은 다음 nsstring 값을 덮어 쓰려고합니다. '/배열 plist에서 데이터를 읽을 수 없습니다

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <string>8</string> 
</array> 
</plist> 

나는 또한 NSDictionary에 함께 노력뿐만 아니라 아무튼 :

NSArray *directoriespaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *documentsDir = [directoriespaths objectAtIndex:0]; 
NSString *fullnamefordir = [documentsDir stringByAppendingPathComponent:@"data.plist"]; 

     NSArray *turns = [NSArray arrayWithContentsOfFile:fullnamefordir]; 
     NSString *resultofarray = [turns objectAtIndex:0]; 
     NSLog(@"%@",turns); 
     NSLog(@"%@",resultofarray); 

nslog는 항상 null 보여주고 나는 심지어 값을 읽을 수 없기 때문에 지금까지 아무것도 저장하려고 아니에요 미리 감사드립니다 :)

답변

3

먼저 plist 파일이 문서 디렉토리에 있는지 확인하십시오.

NSFileMangaer *objFileManager=[[NSFileManager alloc]init]; 
BOOL isfileExist=[objFileManager fileExistsAtPath:yourDocumentDirectoryPath]; 

IF 부울 값이 참인 경우 plist의 내용을 확인하십시오. 파일이 문서 디렉토리에 존재하지 않을 수도 있습니다. 리소스에 있습니다. 리소스 폴더에서 문서 디렉토리로 plist를 복사하지 않은 경우 먼저 거기에 복사 한 다음 액세스를 시도하십시오.

+0

nslog는 파일이 존재 함을 나타냅니다. 자원에서 문서 디렉토리로 파일을 복사하면 무엇을 의미합니까?이 폴더는 어디에서 찾을 수 있습니까? – repoguy

+1

plist 파일에 대한 문서 디렉토리를 확인하십시오. YourUsername-> Library-> ApplicationSupport-> IphoneSimulator-> 5.0-> ChooseApplicationID-> Documents 많은 응용 프로그램 availabel 모두 삭제하고 응용 프로그램을 실행하는 경우. 하나만 applciation있을 것입니다 다음 문서 디렉토리를 확인하십시오. 당신이 말한 것처럼 – Cyrus1

+0

, 모든 응용 프로그램 문서를 삭제하고 다시 한 번 응용 프로그램을 빌드합니다. 이상한 것은 지금 내 plist 파일이 Documents에 존재하지 않으며 nslog가 파일이 존재하지 않는다는 것을 보여줍니다. 이 경우 어떻게해야합니까? 그런데 답장을 보내 주셔서 감사합니다. – repoguy

관련 문제