CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.
TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Jun 2015 |
Maintained by Fabio Knoedt.
A light-weight library to execute Objective-C codes only once in app life or version life. Execute code/blocks only for the first time the app runs, for example.
We recommend you to install this project using CocoaPods:
platform :ios, '6.0'
pod "YCFirstTime"
Use this option, for example, to run a welcome dialog or create a initial database.
[[YCFirstTime shared] executeOnce:^{
/// Some code that should run only ONCE per app installation.
} forKey:@"CHOOSE_AN_UNIQUE_KEY_FOR_THIS_SNIPPET"];
You could use this to show new features of a new version to the user.
[[YCFirstTime shared] executeOncePerVersion:^{
/// Some code that should run only ONCE per app version.
/// This code will run in your version 1.0 and as well in the 1.1
} forKey:@"CHOOSE_AN_UNIQUE_KEY_FOR_THIS_SNIPPET"];
User case 5: ask for something else every X days/hours/minutes/seconds. The days parameter is a CGFloat, use like you want.
[[YCFirstTime shared] executeOncePerInterval:^{
/// Some code that should run only ONCE per app version.
/// This code will run in your version 1.0 and as well in the 1.1
} forKey:@"CHOOSE_AN_UNIQUE_KEY_FOR_THIS_SNIPPET" withDaysInterval:2.0f];
This useful when you need to highlight some element for the first time but from this time on, you want to execute another code.
[[YCFirstTime shared] executeOnce:^{
/// Some code that should run only ONCE per app installation.
} executeAfterFirstTime:^{
/// Another piece of code to run from the SECOND time on.
} forKey:@"CHOOSE_AN_UNIQUE_KEY_FOR_THIS_SNIPPET"];
[[YCFirstTime shared] executeOncePerVersion:^{
/// Some code that should run only ONCE per app installation.
} executeAfterFirstTime:^{
/// Another piece of code to run from the SECOND time on.
} forKey:@"CHOOSE_AN_UNIQUE_KEY_FOR_THIS_SNIPPET"];
If you want to remove all previous executions and start from zero, you can call:
[[YCFirstTime shared] reset];
Runs fine in iOS6+ and requires ARC.