uilocalnotification не се задейства в точното време

Искам да внедря uilocalnotification в моето приложение. но проблемът е, че не стреля в точното време. стреля след 30 - 40 секунди от даденото време за стрелба. Има ли нещо, което пропускам или това е често срещано мнение в UILocalNotification.

Благодаря


person Robin    schedule 21.02.2011    source източник
comment
За какво го използвате? Предполагам, че UILocalNotification не е проектиран да бъде толкова точен?   -  person deanWombourne    schedule 21.02.2011
comment
Просто от интерес, как измервате тази грешка?   -  person deanWombourne    schedule 21.02.2011


Отговори (3)


UILocalNotification е предназначен за неща, които се случват далеч в бъдещето, така че грешка от 30 секунди би била ОК (т.е. ако имах среща в 15:00, тогава няма да е проблем да ми кажат в 15:00:30 :)

Ако искате повече точност от тази, ще трябва да поддържате приложението си работещо и да използвате NSTimer.

person deanWombourne    schedule 21.02.2011
comment
Сигурен ли си за това. защото, ако клиентът ми ме попита за забавянето, тогава трябва да съм наясно с това, или вратът ми ще бъде в ръката му. така че, ако можете да ми предоставите някои връзки, които казват същото, тогава ut ще бъде полезно, благодаря предварително - person Robin; 21.02.2011
comment
Досадно е, че не мога да го намеря изрично посочено никъде, но тъй като тази система е проектирана да използва известия от външни източници, бих предположил, че те не се интересуват толкова много от точността. Ако обаче това е толкова голям проблем, просто ги насрочете 30 секунди по-рано ;) - person deanWombourne; 21.02.2011
comment
това беше първоначалният ми план. Мисля, че трябва да го направя по всякакъв начин, така че благодаря. - person Robin; 21.02.2011

Знам, че това е стар въпрос, но току-що разбрах това, можете да използвате метода dateByAddingTimeInterval :.

notif.fireDate = [[datePicker date] dateByAddingTimeInterval:-30];
person Jazzmanouch    schedule 28.03.2011
comment
проблемът с локалните известия е, че те не се задействат в точното време, когато им е казано. Ако използвате горния код, тогава локалното известие ще задейства 1 мин. преди времето за пожар, което искате. така че може да изглежда, че задейства на 3:50, но всъщност ще бъде 3:49 в твоя случай. това ще ви накара да почувствате, че известието е изстреляно в точното време, но не е. и в някои случаи няма да се задейства, ако потребителят иска да зададе известието за 1 минута от сега. - person Robin; 29.03.2011
comment

Разширете RawMinkContext, ако имате нужда от достъп до Mink Session (за автоматизация на браузъра).

Не използвайте Goutte директно.

BehatContext е основен контекст, който би бил избор по подразбиране за повечето от вашите собствени контексти, когато не се нуждаете от Mink.

MinkContext е специализиран контекст, който ви дава достъп до сесията Mink (същото като RawMinkContext). Той обаче съдържа и някои основни дефиниции на стъпки. Ето защо никога не трябва да го разширявате, а по-скоро да го използвате като подконтекст. Ще можете да го разширите само веднъж, тъй като дефинициите на стъпките не могат да бъдат дублирани.

Въпросът е много подобен на другия ви въпрос (погледнете там за пример за използване на Mink): Какво не е наред с моя FeatureContext?

Използването на Behat не означава, че следвате BDD. За да научите повече за това, прочетете следните книги:

За да прочетете за инструментите:

- person WrightsCS; 13.11.2012

Можете да зададете fireDate, като използвате NSDateComponents, в който можете да зададете секунди за firedate. Когато го задам на 0, не работи, но работи, ако го задам на 1 секунда. 1 секунда закъснение ще бъде ОК в сравнение с 30-40 секунди.

NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond   fromDate:fireDate];
    [dateComps setSecond:1];
    [dateComps setNanosecond:00];
    NSDate *newDate = [cal dateFromComponents:dateComps];
    fireDate = newDate;
person Jyoti S.    schedule 12.01.2017