2012-08-07 3 views
0

사용자가 양식을 작성할 때마다 데이터를 저장하려는 plist 파일에 새로운 사전을 작성하는 데 문제가 있습니다. 지금 사용하고있는 코드는 데이터를 덮어 쓰고 원하는대로 이전 사전을 저장하지 않습니다. 여기에 코드 IOS plist에있는 사전 목록 만들기

는 : 대신 writeToFile의 :

//////////// Save data into plist ///////////////// 
// get paths from root direcory 
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
// get documents path 
NSString *documentsPath = [paths objectAtIndex:0]; 
// get the path to our Data/plist file 
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"]; 

// set the variables to the values in the text fields 
self.titlestring = titleexperiencia.text; 
self.descriptionstring = descriptionexperiencia.text; 
self.coordinadastring = [self deviceLocation]; 

// create dictionary with values in UITextFields 
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: titlestring, descriptionstring,coordinadastring, nil] forKeys:[NSArray arrayWithObjects: @"Title", @"Description", @"Coordinate", nil]]; 

NSString *error = nil; 
// create NSData from dictionary 
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; 

// check is plistData exists 
if(plistData) 
{ 
    // write plistData to our Data.plist file 
    [plistData writeToFile:plistPath atomically:YES]; 
    NSLog(@"Saved in Data Plist"); 

} 
else 
{ 
    NSLog(@"Error in saveData: %@", error); 
    [error release]; 
} 

또한 AddObject 사용하려하지만 앱 충돌합니다.

+0

어디에서 오류가 발생합니까? 오류 지역 변수를 보유하지 않은 이유는 무엇입니까? –

답변

0

글쎄, 오류 변수가 과도하게 사용 중이기 때문에 충돌이 발생했을 가능성이 큽니다.

0

plistPath의 내용을 읽으십시오.
NSMutableData * myData = [NSMutableData dataWithContentsOfFile : plistPath];

// create NSData from dictionary 
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; 

에 :
그리고이 변경

// create NSData from dictionary 
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; 
[myData appdendData:plistData];  

그리고 마지막으로 파일에 MYDATA 물품.

희망 하시겠습니까?