• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Deleting 20000 files in applicationWillTerminate
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deleting 20000 files in applicationWillTerminate


  • Subject: Re: Deleting 20000 files in applicationWillTerminate
  • From: Jens Alfke <email@hidden>
  • Date: Fri, 15 Nov 2013 16:18:00 -0800

On Nov 15, 2013, at 3:37 PM, Devarshi Kulshreshtha <email@hidden> wrote:

> In my iPhone app, I am downloading files from server and storing them
> locally (user's document directory).

That’s probably going to get a red flag from Apple when they review the app. They are pretty strict about enforcing that only user-created data goes into Documents. If it’s downloaded data that could be re-loaded if needed, that should go into the Caches directory so it won’t take up backup space in the user’s iCloud account.

> Now my question is - suppose user downloaded 20000 files, say small images,
> and user turned on the switch to delete all data on app exit. Is it good to
> handle this task in applicationWillTerminate?

Probably not. That only gets called when the OS decides to terminate the app process to free up memory, _not_ when the user leaves the app. If you want to delete stuff when the user exits the app, you should do that in -applicationDidEnterBackground:.

As for the deletion, I don’t know how long deleting 20,000 files will take; you’d need to experiment. The OS only gives your process a limited amount of time to respond to the enter-background (or terminate) notification before killing the process, but I don’t know exactly how long that is.

Another option, if the files really are small, is to store the file contents directly in the database. Then all you have to delete is the database file itself. (This will also save disk space, because the file system allocates files in 4k chunks, so with 20,000 files you could be wasting as much as 80MB.) This isn’t a good idea for larger files, though, because SQLite isn’t efficient at handling big blobs.

—Jens
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: Deleting 20000 files in applicationWillTerminate
      • From: Roland King <email@hidden>
References: 
 >Deleting 20000 files in applicationWillTerminate (From: Devarshi Kulshreshtha <email@hidden>)

  • Prev by Date: Re: Identifying complete size of file when transfer is in progress
  • Next by Date: Re: Identifying complete size of file when transfer is in progress
  • Previous by thread: Deleting 20000 files in applicationWillTerminate
  • Next by thread: Re: Deleting 20000 files in applicationWillTerminate
  • Index(es):
    • Date
    • Thread