Есть ли какой-нибудь делегат, который срабатывает при первом запуске приложения iphone? - PullRequest
0 голосов
/ 08 февраля 2011

Мне нужно отслеживать загрузку определенного приложения для iphone. Я много пробовал и узнал, что мы можем отследить это из AppStore. Но мне нужно отследить это из самого приложения. Поэтому, пожалуйста, помогите мне определить метод, который запускается при первом запуске приложения. Спасибо.

Ответы [ 3 ]

5 голосов
/ 08 февраля 2011

Нет конкретного метода, который срабатывает только при первом запуске приложения.Вы можете установить флаг в пользовательских значениях по умолчанию при запуске приложения - поэтому, если флаг отсутствует, это будет означать, что приложение запущено в первый раз:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    if (![[NSUserDefaults standardDefaults] boolForKey:@"AlreadyLaunched"]){
        // First launch logic

        [[NSUserDefaults standardDefaults] setBool:YES forKey:@"AlreadyLaunched"];
        [[NSUserDefaults standardDefaults] synchronize];
    }
    ...
}
1 голос
/ 08 февраля 2011

Но мне нужно отследить это из самого приложения.

Нет.

Но если вы действительно хотите это сделать, вы можете использовать что-то вроде этого:

BOOL hasUsedSpyWareFunctions = [[NSUserDefaults standardUserDefaults] boolForKey:@"SpyWareKey"];
if (!hasUsedSpyWareFunctions) {
    [self spyOnUser];
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SpyWareKey"];
}

если вы являетесь профессионалом в шпионаже, вы устанавливаете ключ на YES только в случае успешного возврата метода (т. Е. Может быть установлено сетевое соединение)

0 голосов
/ 08 февраля 2011

Нет такого события, по крайней мере, не одного, о котором я знаю.Но то, что вы хотите, можно сделать тривиально, используя NSUserDefaults.Просто проверьте наличие логического флага и, если его там нет, это первый запуск, и вы можете установить флаг:

NSString *const AlreadyRunKey = @"already-run";
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs boolForKey:AlreadyRunKey]) {
    [prefs setBool:YES forKey:AlreadyRunKey];
    [prefs synchronize];
    // do whatever else you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...