2012-09-30 4 views
0

이것은 과거의 일 - 조금 - 너무 많이에 좌절하게되었습니다 : 왜 이것이 작동하지 않습니까?NSMutableDictionary를 plist iOS에 저장

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",kAllScoresUnorderedArray]]; 

NSMutableDictionary *test = [[NSMutableDictionary alloc] init]; 
[test setObject:@"bob" forKey:@"tmo"]; 

[test writeToFile:path atomically: YES]; 

내가 전에 그것을 사용하고, 그것은 완벽하게 작동 : 내의 Info.plist에 추가 잊고 뭔가가있다? 그것이 내가 생각할 수있는 유일한 것입니다.

도움 주셔서 감사합니다.

편집 : 아마도 Xcode 4.5 및 iOS6과 관련이 있습니까? 4.3/iOS5에서 작동했습니다.

+2

작동하지 않는다고 할 때, 정확히 무엇을 의미합니까? 그것은 컴파일합니까, 충돌합니까, 파일을 생성합니까? – Till

+0

또한, 왜'stringByAppendingPathExtension :'대신'stringWithFormat :'을 사용하고 있습니까? –

+0

이 부분은 약간 물고기처럼 보입니다 : [NSString stringWithFormat : @ "% @. plist", kAllScoresUnorderedArray]. kAllScoresUnorderedArray에 무엇이 있습니까? – Baglan

답변

0

.plist 파일을 프로젝트에 추가 했습니까? 그렇다면 시도해보십시오.

NSError *error; 
     NSFileManager *fileManager = [[NSFileManager alloc] init]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",kAllScoresUnorderedArray]]; 

    if (![fileManager fileExistsAtPath: path]) 
      { 
       NSString *bundle = [[NSBundle mainBundle] pathForResource:kAllScoresUnorderedArray ofType:@"plist"]; 

       [fileManager copyItemAtPath:bundle toPath: path error:&error]; 
      } 

    NSMutableDictionary *test = [[NSMutableDictionary alloc] initWithContentsOfFile: path]; 
    [test setObject:@"bob" forKey:@"tmo"]; 

    [test writeToFile:path atomically: YES]; 

그렇지 않은 경우 프로젝트에 속성 목록을 만드십시오.

관련 문제