• 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: Does this caution need fixed? (newb)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Does this caution need fixed? (newb)


  • Subject: Re: Does this caution need fixed? (newb)
  • From: Chris Paveglio <email@hidden>
  • Date: Wed, 9 Jul 2008 07:44:48 -0700 (PDT)

I'm trying to make sure that this part of my code is good and clean and not leaking. I believe that I have it right (but still think I have something wrong).
This code makes a list of file paths, and then copies the files or folders from their location to the destination the user selected. If the item already exists in the destination, I delete it first (to overwrite with new data, yes this is what I intend and the user is aware of how the app works).
I've read all your previous responses (Thanks) and it seems like since I am just using "normal" strings that they will be autoreleased on their own. There are now no compiler cautions and the app seems to work OK.
A side issue is that I want to add a 2 second delay before closing the sheet that is displayed, is NSTimer the correct item to use?
Chris



#import "MyExporter.h"

@implementation MyExporter

- (IBAction)exportPrefs:(id)sender
{
NSOpenPanel *theOpenPanel = [NSOpenPanel openPanel];
[theOpenPanel setTitle:@"Choose a folder to save your prefs into:"];
[theOpenPanel setCanChooseDirectories:YES];
[theOpenPanel setCanChooseFiles:NO];

if ([theOpenPanel runModal] == NSOKButton)
//if user chooses a folder
	{
		NSString *theDestination = [theOpenPanel filename]; //get name
		NSFileManager *theManager = [NSFileManager defaultManager]; //make an NSFM

		//if files dont exist on user machine it just seems to bypass copying them
		NSString *string1  = @"Library/Preferences/Adobe Photoshop CS3 Settings";
		NSString *string1a = @"Adobe Photoshop CS3 Settings";
		NSString *string2  = @"Library/Preferences/Adobe Illustrator CS3 Settings";
		NSString *string2a = @"Adobe Illustrator CS3 Settings";
		NSString *string3  = @"Library/Preferences/Adobe InDesign/Version 5.0";
		NSString *string3a = @"Version 5.0";
		NSString *string4  = @"Library/Preferences/CDFinder Preferences";
		NSString *string4a = @"CDFinder Preferences";
		NSString *string5  = @"Library/Application Support/Firefox";
		NSString *string5a = @"Firefox";
		NSString *string6  = @"Library/Safari";
		NSString *string6a = @"Safari";
		NSString *string7  = @"Library/Application Support/Adobe/Adobe PDF/Settings";
		NSString *string7a = @"Settings";
		NSString *string8  = @"Library/Preferences/Acrobat Distiller Prefs";
		NSString *string8a = @"Acrobat Distiller Prefs";
		NSString *string9  = @"Documents/Microsoft User Data";
		NSString *string9a = @"Microsoft User Data";

		//make 2 arrays with locations of orig prefs, and then short version to save in folder
		NSArray *myPrefs;
		myPrefs = [NSArray arrayWithObjects: string1, string2, string3, string4, string5, string6, string7, string8, string9, nil];

		NSArray *myPrefsSaved;
		myPrefsSaved = [NSArray arrayWithObjects: string1a, string2a, string3a, string4a, string5a, string6a, string7a, string8a, string9a, nil];

		//start panel here
		[NSApp beginSheet:exportSheet modalForWindow:mainWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];

		[exportProgressBar setDoubleValue:(double)3.0]; //fake ourselves some progress
		[exportProgressBar displayIfNeeded];

		int i;
		for (i = 0; i < 8; i++) //skip string9 for testing, takes too long to copy
		{
			NSString *theSettings = [NSHomeDirectory() stringByAppendingPathComponent:[myPrefs objectAtIndex:i]];
			//change/set out variable to this data

			//loop with each item saving into our destination folder
			NSString *theDestinationFile = [theDestination stringByAppendingPathComponent:[myPrefsSaved objectAtIndex:i]];

			[exportCurrentFileName setStringValue:(@"%@",[myPrefsSaved objectAtIndex:i])];
			[exportCurrentFileName displayIfNeeded]; //give a kick to our text box dammit!

			//delete the old pref file
			[theManager removeFileAtPath:theDestinationFile handler:nil];

			//copy the file
			[theManager copyPath:theSettings toPath:theDestinationFile handler:nil];

			[exportProgressBar incrementBy:(double)11.0]; //11 is arbitrary progress (100 divided by 9 items)
			[exportProgressBar displayIfNeeded];

		}
		[exportProgressBar setDoubleValue:100.0];
		[exportProgressBar displayIfNeeded];
		//end sheet here
		[exportSheet orderOut:nil];
		[NSApp endSheet:exportSheet];
	}
}



@end






_______________________________________________

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: Does this caution need fixed? (newb)
      • From: Brian Stern <email@hidden>
    • Re: Does this caution need fixed? (newb)
      • From: Jens Alfke <email@hidden>
  • Prev by Date: Re: counting managed objects of a certain type
  • Next by Date: Re: Finding AS related memory leak
  • Previous by thread: Re: Does this caution need fixed? (newb)
  • Next by thread: Re: Does this caution need fixed? (newb)
  • Index(es):
    • Date
    • Thread