Одно хорошее свойство о 0xCCCCCCCC значения заливки - то, что в x86 блоке, код операции 0xCC код операции int3 , который является прерыванием точки останова программного обеспечения. Так, если Вы когда-нибудь пытаетесь выполнить код в неинициализированной памяти, это было заполнено тем значением заливки, Вы сразу поразите точку останова, и операционная система позволит Вам присоединить отладчик (или уничтожить процесс).
Хм, если я открою Library / Preferences / com.apple.Accessibility.plist и изменю ApplicationAccessibilityEnabled с false на true, тогда все заработает. (Этот путь находится в ~ / Library / Application Support / iPhone Simulator /)
Я попытался добавить это в начало main ():
CFPreferencesSetAppValue(@"AccessibilityEnabled", kCFBooleanTrue, @"com.apple.Accessibility");
CFPreferencesSetAppValue(@"ApplicationAccessibilityEnabled", kCFBooleanTrue, @"com.apple.Accessibility");
CFPreferencesAppSynchronize(@"com.apple.Accessibility");
, но это не сработало. (Он записал файл в Applications / {UUID} /Library/Preferences/com.apple.Accessibility.plist)
РЕДАКТИРОВАТЬ: после выполнения кода UIKit вызов, который определяет, включена или отключена доступность, будет
CFPreferencesGetBooleanValue(@"ApplicationAccessibilityEnabled", @"/Users/sam/Library/Application Support/iPhone Simulator/User/Library/Preferences/com.apple.Accessibility", NULL);
Обратите внимание на причудливый ключ приложения, я еще не уверен, откуда взялось это значение (мои знания сборки 386 очень слабые!), Но я могу передать этот ключ в CFPreferencesSetAppValue, и он работает, по крайней мере, на симуляторе (я не в данный момент у меня нет доступа к реальному устройству).
Также это включит доступность приложения для всех приложений (поскольку оно записывает его в глобальный список). Я могу установить флаг из main (), если значение должно быть снова установлено на false после запуска приложения.