Return to Snippet

Revision: 4176
at February 14, 2008 04:50 by 0xced


Updated Code
- (id)initWithBundle:(NSBundle *)bundle
{
    if ([[self class] version] != 0) {
        NSString *reloadPath = [bundle pathForResource:@"reload" ofType:nil];
        [NSTask launchedTaskWithLaunchPath:reloadPath arguments:[NSArray arrayWithObjects:[bundle bundleIdentifier],
                                                                [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]], nil]];
        [NSApp terminate:self];
    }
    [[self class] setVersion:1];
    
    if ((self = [super initWithBundle:bundle]) != nil) {
        // initializations
    }
    return self;
}

Revision: 4175
at October 31, 2007 16:48 by 0xced


Initial Code
- (id)initWithBundle:(NSBundle *)bundle
{
	NSDictionary *infoPlist = [NSDictionary dictionaryWithContentsOfFile:[[[bundle bundlePath] stringByAppendingPathComponent:@"Contents"] stringByAppendingPathComponent:@"Info.plist"]];
	NSString *onDiskVersion = [infoPlist objectForKey:@"CFBundleShortVersionString"];
	NSString *cachedVersion = [[bundle infoDictionary] objectForKey:@"CFBundleShortVersionString"];
	
	if (![onDiskVersion isEqualToString:cachedVersion]) {
		NSString *reloadPath = [[[bundle executablePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"reload"];
		[NSTask launchedTaskWithLaunchPath:reloadPath arguments:[NSArray arrayWithObjects:[bundle bundleIdentifier],
		                                                        [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]], nil]];
		[NSApp terminate:self];
	}
	
	if ((self = [super initWithBundle:bundle]) != nil) {
	   // initializations
	}
	return self;
}

Initial URL


Initial Description
This detects if a preference pane is loaded over an already loaded older version. If the version mismatches, the reload tool (http://snipplr.com/view/3924/reload-a-preference-pane/) is launched and System Preferences is quitted.

Initial Title
Detect already loaded older version of a preference pane

Initial Tags


Initial Language
Objective C