Caching data on disk in iOS
This doesn't help with your primary concern of disk space, but you've got a high amount of unnecessary duplication in your code, as well as what appears to be some unnecessary checking and duplication.

We effectively see this block of code three times:

if(loopCount == [copyEventArray count]){ // when done looping, save it all
    NSUserDefaults *userData = [NSUserDefaults standardUserDefaults];
    [userData setObject:archiveArray forKey:@"events"];
    NSLog(@"save is done");
}


Moreover, as a result of your approach, there's actually a bug that could cause the entire method to be a wasted effort.  If the last object in copyEventArray is a PFFile object, but it has an error being fetched, your array won't save to user defaults at all.

And ultimately, this is code is probably a little bit hard to follow (even for you perhaps?)  In a background thread, we're iterating through an array and dispatching other background threads out (presuming getDataInBackgroundWithBlock actually does what it suggests it does).

The problem is, we're trying to asynchronously load a ton of images into the same array but then wait until we're completely done loading them all into the same array before we save that single array into NSUserDefaults.

So, with all of that said, I've got a few recommendations.


Have you tried storing your images purely as NSData objects?  Have you compared the size of NSData versus UIImage?
Consider as an option compressing your downloaded images.  Perhaps, realistically, it might be better if the version stored on the server is more compressed, but certainly a mobile device could compress the image.  Once you have a UIImage object, you can get an NSData object for the .png representation of that image, or you could get an NSData object for the .jpg representation of that image.  A .png will compress the image as much as possible without any loss.  A .jpg, you can specify the compression rate.
I highly recommend looking into Core Data.  This would greatly simplify the downloading and archiving process.  You could greatly improve the rate at which you pull the images back off the disk to display.  And it's probably more efficient than using NSUserDefaults.