2013-10-15 4 views
1

Plist에서 저장 및로드를 시도하기가 쉽지만 작동하지 않습니다. 누군가가 내 코드를 살펴보고 무엇이 잘못되었는지 알려 주시면 감사하겠습니다.Plist 문제 저장 /로드

- (IBAction)testSave:(id)sender { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"]; 
    NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation]; 

    [plistDict setObject:@"test" forKey:@"test"]; 
    [plistDict writeToFile:plistLocation atomically: YES]; 
} 

- (IBAction)testLoad:(id)sender { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"]; 
    NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation]; 

    testField.text = [plistDict objectForKey:@"test"]; 
} 

고마워요!

+0

"작동하지 않음"을 정의하십시오. 코드가 컴파일됩니까? 실행됩니까? 무슨 일이야? 어떤 메시지가 있습니까? – rmaddy

+0

코드에서 빈 필드가 반환됩니다. – user2881086

답변

0

To write the File : You are making mistake here

- (IBAction)testSave:(id)sender { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"]; 

    // Declare Dictionary Object 
    NSMutableDictionary* plistDict; 

    // Check if plist file exist or not, if EXIST load data from it otherwise create new 
    if([[NSFileManager defaultManager] fileExistsAtPath:plistLocation]) 
     plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation]; 
    else 
     plistDict = [[NSMutableDictionary alloc] init]; 

    [plistDict setObject:@"test" forKey:@"test"]; 
    [plistDict writeToFile:plistLocation atomically: YES]; 
} 

Your Code for Reading is Correct을보십시오. 행운을 빕니다.

+0

완벽하게 일했습니다. 정말 고마워! – user2881086

0

문서 디렉토리에 data.plist가 있는지 확인하십시오. plistLocation에 저장된 값을 찾으려면 해당 문서를 찾으십시오. 경로를 따라 가서 거기에 실제로 data.plist가 있는지 확인하십시오.

희망 하시겠습니까?