title: NSFileManager removeItemAtPath: error: did not actually free disk space
body: <pre><code>NSFileManager* fileManager = [NSFileManager defaultManager];
  NSURL* url = [[fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject];
  NSString* directory = [url path];
  NSString* filePath = [directory stringByAppendingPathComponent:FILE_NAME];
  if ([fileManager fileExistsAtPath:filePath])
  {
      [fileManager removeItemAtPath:filePath error:nil];
  }   
  </code></pre>
  
  <p>Here's my code. When it is executed, the file is deleted, but the space remains occupied. Here's the code for storing something into the file.</p>
  
  <pre><code>NSFileManager* fileManager = [NSFileManager defaultManager];
  NSURL* url = [[fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject];
  NSString* directory = [url path];
  NSString* filePath = [directory stringByAppendingPathComponent:FILE_NAME];
  NSArray* oldArray = nil;
  if ([fileManager fileExistsAtPath:filePath])
  {
      oldArray = [[NSArray alloc] initWithContentsOfFile:filePath];
      [fileManager removeItemAtPath:filePath error:nil];
  }
  NSMutableArray* mergeArray = [[NSMutableArray alloc] initWithArray:arrayOfPersons];
  [mergeArray addObjectsFromArray:oldArray];
  if ( [mergeArray writeToFile:filePath atomically:YES]) NSLog(@"Written");
  </code></pre>
  
  <p>By the way, it cost 1 MB to store an array with only 1 object(an NSDictionary with 2 keys). Is there a cheaper way to store it?</p>