Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: None  |  size: 3.96 KB  |  hits: 21  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. iPhone read/write .plist file
  2. NSString *filePath = @"/Users/Denis/Documents/Xcode/iPhone/MLBB/data.plist";
  3. NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
  4. [plistDict setValue:@"Man" forKey:@"Gender"];
  5. [plistDict writeToFile:filePath atomically: YES];
  6.        
  7. - (IBAction)segmentControlChanged{
  8. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  9. NSString *documentsDirectory = [paths objectAtIndex:0];
  10. NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
  11. NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];
  12.  
  13. if (Gender.selectedSegmentIndex == 0) {
  14.     [plistDict setObject:@"Man" forKey:@"Gender"];
  15.     [plistDict writeToFile:plistLocation atomically: YES];
  16. }
  17. else
  18. {
  19.     [plistDict setObject:@"Women" forKey:@"Gender"];
  20.     [plistDict writeToFile:plistLocation atomically: YES];
  21. }
  22. }
  23.        
  24. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  25. NSString *documentsDirectory = [paths objectAtIndex:0];
  26. NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"myplist.plist"];
  27.        
  28. - (NSString *)copyFileToDocumentDirectory:(NSString *)fileName {
  29.  
  30. NSError *error;
  31.  
  32. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
  33.                                                                                                          NSUserDomainMask,
  34.                                                                                                          YES);
  35. NSString *documentsDir = [paths objectAtIndex:0];
  36.  
  37. NSString *documentDirPath = [documentsDir
  38.                                                  stringByAppendingPathComponent:fileName];
  39.  
  40. NSArray *file = [fileName componentsSeparatedByString:@"."];
  41. NSString *filePath = [[NSBundle mainBundle]pathForResource:
  42.                                             [file objectAtIndex:0]
  43.                                                                                                         ofType:[file lastObject]];
  44.  
  45.  
  46. NSFileManager *fileManager = [NSFileManager defaultManager];
  47. BOOL success = [fileManager fileExistsAtPath:documentDirPath];
  48.  
  49. if(!success) {
  50.  
  51.     success = [fileManager copyItemAtPath:filePath
  52.                                                                  toPath:documentDirPath
  53.                                                                     error:&error];
  54.  
  55.     if (!success)
  56.     NSAssert1(0, @"Failed to create writable txt file file with message '%@'.",
  57.                         [error localizedDescription]);
  58. }
  59.  
  60. return documentDirPath;
  61.        
  62. <array> <dict> key-value data </dict> <dict> key-value data </dict> </array>
  63.  
  64. /*Code to write into file*/
  65.  
  66. - (void)addToMyPlist {
  67.  
  68.     // set filemanage object
  69.     NSFileManager *man = [NSFileManager defaultManager];
  70.  
  71.     // check whether file is exists or not
  72.     NSString *plistPath = [self copyFileToDocumentDirectory:@"MyPlistFile.plist"];
  73.  
  74.     BOOL isExist = [man fileExistsAtPath:plistPath];    
  75.     // BOOL done = NO;
  76.  
  77.     if(!isExist) {
  78.  
  79.         // NSLog(@" n File not exist");
  80.         // done = [man copyItemAtPath:file toPath:fileName error:&error];
  81.     }
  82.     // NSLog(@" n done===%d",done);
  83.  
  84.     // get data from plist file
  85.     NSMutableArray * plistArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
  86.  
  87.     // create dictionary using array data and bookmarkKeysArray keys
  88.     NSArray *keysArray = [[NSArray alloc]initWithObjects:@"StudentNo",nil];
  89.     NSArray *valuesArray = [[NSArray alloc]initWithObjects:[NSString stringWithFormat:@"1234"],nil];
  90.  
  91.     NSDictionary plistDict = [[NSDictionary alloc]initWithObjects: valuesArray forKeys: keysArray];
  92.  
  93.     [plistArray insertObject:poDict atIndex:0];
  94.  
  95.     // write data to  plist file
  96.     //BOOL isWritten = [plistArray writeToFile:plistPath atomically:YES];
  97.   [plistArray writeToFile:plistPath atomically:YES];
  98.  
  99.     plistArray = nil;
  100.  
  101.     // check for status
  102.     // NSLog(@" n  written == %d",isWritten);
  103. }