Execute function only at first run iOS

ios, objective-c, xcode

Solution

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    
if ( ![userDefaults valueForKey:@"version"] )
{
    // CALL your Function;

    // Adding version number to NSUserDefaults for first version:
    [userDefaults setFloat:[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] floatValue] forKey:@"version"];    
}

if ([[NSUserDefaults standardUserDefaults] floatForKey:@"version"] == [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] floatValue] )
{
    // Same Version so dont run the function
}
else
{
    // Call Your Function;

    // Update version number to NSUserDefaults for other versions:
    [userDefaults setFloat:[[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] floatValue] forKey:@"version"];
}

Problem

Is there any way by which I can run a function only once (when the app is updated or installed)? I can't use run script as I should use an Objective-C function.

Original source