@PauloCasaretto: Вероятно не искате да правите [self viewWithTag:0], тъй като IIRC 0 е етикетът по подразбиране. Също така трябва да бъдете малко внимателни, когато използвате повторно идентификатори на тагове.

person Bryce Thomas    schedule 09.10.2012    source източник
comment
Това, което означава препратката към класа, е, че приложението ще бъде рестартирано и в опцията applicationDidFinishLaunching:опциите ще съдържат ключ „UIApplicationLaunchOptionsLocationKey“, за да се посочи, че приложението е рестартирано поради открити наблюдавани региони didEnterRegion/didExitRegion. Ако ключът бъде открит, ще трябва да активирате отново диспечера на местоположението и делегатите, преди да можете да извършвате каквато и да е работа вътре в делегатите.   -  person nhisyam    schedule 07.03.2013


Отговори (1)


Трябва ли да се регистрира делегатът за startMonitoringForRegion от някъде конкретно? Предполагам, че не може да бъде поставено в контролер за изглед, ако стартираме приложението, без да го извеждаме на преден план.

Невярно. Обект на контролер на изглед все още съществува, ако е разпределен-инициализиран, дори ако съдържанието му не е представено.

Ако решим, че искаме да поставим приложението на преден план в резултат на влизане в региона, как ще го направим?

Не е възможно използването на публични API (не съм сигурен дали приложение във фонов режим може да използва - [UIApplication openURL:] със собствена URL схема, за да влезе във фонов режим, но се съмнявам); но може да сте в състояние да използвате рамката на SpringBoardServices, за да стартирате приложението си:

SBSLaunchApplicationWithIdentifier(CFSTR("com.mycompany.theBestiPhoneAppEver"), false);

Кога startMonitoringForRegion се регистрира в операционната система и кога се дерегистрира? Трябва ли потребителят да е стартирал приложението поне веднъж (дори ако след това е било убито), за да се извърши първоначалната регистрация?

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

Какво става, ако потребителят изключи устройството? Ще бъде ли регистриран нашият манипулатор при следващото включване на устройството или потребителят ще трябва да стартира приложението поне още веднъж?

Това е добър въпрос. Не го знам на пръв поглед, нито намерих отговор в документацията (вероятно и вие не сте намерили това), така че бих казал, че е по-добре да опитате сами, за да сте сигурни.

person Community    schedule 09.10.2012