[self viewWithTag:0]
, тъй като IIRC 0 е етикетът по подразбиране. Също така трябва да бъдете малко внимателни, когато използвате повторно идентификатори на тагове.
Отговори (1)
Трябва ли да се регистрира делегатът за startMonitoringForRegion от някъде конкретно? Предполагам, че не може да бъде поставено в контролер за изглед, ако стартираме приложението, без да го извеждаме на преден план.
Невярно. Обект на контролер на изглед все още съществува, ако е разпределен-инициализиран, дори ако съдържанието му не е представено.
Ако решим, че искаме да поставим приложението на преден план в резултат на влизане в региона, как ще го направим?
Не е възможно използването на публични API (не съм сигурен дали приложение във фонов режим може да използва - [UIApplication openURL:]
със собствена URL схема, за да влезе във фонов режим, но се съмнявам); но може да сте в състояние да използвате рамката на SpringBoardServices, за да стартирате приложението си:
SBSLaunchApplicationWithIdentifier(CFSTR("com.mycompany.theBestiPhoneAppEver"), false);
Кога startMonitoringForRegion се регистрира в операционната система и кога се дерегистрира? Трябва ли потребителят да е стартирал приложението поне веднъж (дори ако след това е било убито), за да се извърши първоначалната регистрация?
Ако потребителят никога не стартира вашето приложение, кодът вътре никога няма да бъде изпълнен, така че няма да бъде регистриран.
Какво става, ако потребителят изключи устройството? Ще бъде ли регистриран нашият манипулатор при следващото включване на устройството или потребителят ще трябва да стартира приложението поне още веднъж?
Това е добър въпрос. Не го знам на пръв поглед, нито намерих отговор в документацията (вероятно и вие не сте намерили това), така че бих казал, че е по-добре да опитате сами, за да сте сигурни.