webBG - програмисти, машинно обучение, javascript, python, php, питам, говорим, публикации

брояч на време в приложението за iphone

Бих искал да създам брояч на време в моето приложение, който показва на потребителя колко минути приложението е изпълнявало текущата сесия и общо. Как да създам такъв брояч на време и как да запазя стойността в телефона? Нов съм в разработката на приложения.

15.06.2010

Отговори:


1

Можете да използвате класовете NSDate и NSDateFormatter за това.

Ето един пример:

Декларирайте NSDate екземпляр във вашия .m файл:

@implementation MyClass 

NSDate *startDate;
BOOL stopTimer = NO;
//...    

-(void) showElapsedTime: (NSTimer *) timer {
    if(!startDate) {
        startDate = [NSDate date]; 
    }
    NSTimeInterval timeSinceStart = [[NSDate date] timeIntervalSinceDate:startDate];
    NSDate *newDate = [[NSDate alloc] initWithTimeInterval:timeSinceStart sinceDate:startDate];
    NSString *dateString = [NSDateFormatter localizedStringFromDate:newDate dateStyle: NSDateFormatterNoStyle timeStyle: NSDateFormatterShortStyle];


    //do something with dateString....

    if(stopTimer) {//base case
       [timer invalidate];
    }
    [newDate release];
}

- (void) startPolling {
    [NSTimer scheduledTimerWithTimeInterval:0.09f target:self selector:@selector(showElapsedTime:) userInfo:nil repeats:YES];
}

//...

@end
15.06.2010
  • Благодаря. как мога да запазя това в базата данни на iPhone? (запазване на нова дата при излизане от приложението) 15.06.2010
  • едно последно нещо - как да добавя две дати? нова дата + обща дата 15.06.2010
  • Опитайте NSDate *addedDate = [newDate dateByAddingTimeInterval:[newDate timeIntervalSinceDate:startDate]]; 15.06.2010
  • Трябва ли да използвам цикъл, за да продължа да опреснявам брояча на времето? 15.06.2010
  • Сигурен. Опитвате се да получите NSUserDefaults за запазване на данни. Не работи. Сложих го viewDidUnload. Освен това къде трябва да заредя данните при стартиране на приложението. 15.06.2010
  • @Сам, хвани ме на AIM. Името ми е с малки букви без интервали. 15.06.2010
  • сега съм онлайн. се натъкнах на друг проблем. NSDate *startDate = [NSDate дата]; //елементът на инициализатор не е константа 15.06.2010

  • Нови материали

    Записване на грешки — Как да записвате грешки във вашето приложение, за да ги отстраните по-късно
    Записването на грешки е важна част от „обработването на грешки“. Накратко, когато възникнат определени грешки в програмите, вие искате да знаете за това. Това е особено важно при грешки. Ти..

    Кратко въведение в теорията на графите
    Кратко въведение в теорията на графите Втора част: внедряване на python на пълни графики В моята предишна статия въведох три основни концепции за графите: върхове, ръбове и тегла. В тази..

    Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано, искам...
    Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано искам да обясня защо машинното обучение има значение. За да бъда съвсем..

    Какво е структурно типизиране и как Typescript го използва в своя полза?
    Всички знаят тези дни, че „Typescript е строго синтактично надмножество на JavaScript и добавя незадължително статично въвеждане към езика.“. Но какво всъщност означава? Защо миграцията от..

    3 начина за премахване на дубликати от масив в Javascript
    Вие сте уеб разработчик? Програмист ли си? Тогава ще сте запознати с JavaScript и различните му вградени функции, методи и т.н. за различни реализации, проблеми и цели. Един от тези широко..

    Архитектура и обучение на конволюционни невронни мрежи (7 точки):
    Тази публикация предоставя подробности за архитектурата на Конволюционната невронна мрежа (CNN), функциите и обучението на всеки слой, завършвайки с резюме на обучението на CNN...

    Създайте разширение за Chrome с помощта на Angular
    Този урок е базиран на манифеста на разширението на chrome версия 3 (MV3), а също и на Angular версия 2+ (2, 3 и...). Ако не сте използвали манифест версия 3, можете да следвате този урок ,..