아래와 같이 savePlist라는 사용자 지정 함수가 있다고 가정합니다. 나는 아래와 같은 코드를 실행하는 동안Objective-c에서 plist에 데이터를 쓰는 기능
CommonClass.m
- (NSString *)getDirectoryPath
{
NSArray *pathList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [pathList objectAtIndex:0];
return path;
}
- (void)savePlist:(NSString *)fileName WithArray:(NSArray *)fileArr
{
NSString *path = [[self getDirectoryPath] stringByAppendingPathComponent:fileName];
[fileArr writeToFile:path atomically:YES];
}
은 더 PLIST는 생성되지 않습니다.
ABCAppDelegate.m
...
[cc savePlist:@"example.plist" WithArray:[NSArray new]];
example.plist의 파일이 생성되지 않은
, 내 코드에 어떤 실수가?
감사
업데이트 : 아래의 코드를 사용하는 경우
의 xxx.plist 파일이 성공적으로 생성되었습니다.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *plistFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"abc.plist"];
NSMutableDictionary *plist = [[NSMutableDictionary alloc] initWithContentsOfFile:plistFile];
if (!plist) {
plist = [NSMutableDictionary new];
[plist writeToFile:plistFile atomically:YES];
NSLog(@"write plist");
}
참조 : link
업데이트 2 :
나는 아래의 코드 변경 :
NSLog(@"code");
[cc savePlist:@"example.plist" WithArray:[NSArray new]];
NSLog(@"code");
- (void)savePlist:(NSString *)fileName WithArray:(NSArray *)fileArr
{
NSLog(@"fileName = %@, fileArr = %@", fileName, fileArr);
NSString *path = [[self getDirectoryPath] stringByAppendingPathComponent:fileName];
NSLog(@"path = %@", path);
[fileArr writeToFile:path atomically:YES];
}
그냥 인쇄 :
2011-10-10 14:24:00.560 ABC[3390:207] code
2011-10-10 14:24:00.561 ABC[3390:207] code
없음 메시지 fil eName = 및 fileArr =, 또한 path = 로그에 출력하므로 savePlist 내의 코드가 실행되지 않았습니까?
다음은 확인해야 할 몇 가지 사항입니다. 빈 배열이 아닌 다른 것을 전달하려고 했습니까? getDirectoryPath 및 경로의 결과를 인쇄하여 예상 한 경로인지 확인 했습니까? writeToFile이 YES를 반환하는지 확인 했습니까? –
나는 darren과 동의합니다. 이것은 가장 가능성있는 경로입니다. NSLog (@ "% @", 경로)를 추가하는 것이 좋습니다. writeToFile 메시지 바로 전에 파일 경로를 디버그합니다. – EladG
알았어, 고마워, 내 질문에 업데이트를 추가했습니다, 친절하게 확인하시기 바랍니다. –