É possível invocar o valor do NSDictionary: quando uma chave contém períodos?
-
26-09-2019 - |
Pergunta
Estou tentando obter o valor da tecla RepeatInterval no com.apple.scheduler Plist. Eu gostaria de usar apenas o valor do NSDictionary: método como assim:
CFPropertyListRef value;
value = CFPreferencesCopyValue(CFSTR("AbsoluteSchedule"),
CFSTR("com.apple.scheduler"),
kCFPreferencesCurrentUser,
kCFPreferencesCurrentHost);
NSNumber *repeatInterval = [(NSDictionary *)value valueForKeyPath:@"com.apple.SoftwareUpdate.SUCheckSchedulerTag.Timer.repeatInterval"];
Mas o problema com isso é que a primeira chave é realmente "com.apple.softwareUpdate", não apenas "com". Eu posso contornar isso obtendo esse primeiro valor separadamente:
NSDictionary *dict = [(NSDictionary *)value valueForKey:@"com.apple.SoftwareUpdate"];
NSNumber *repeatInterval = [dict valueForKeyPath:@"SUCheckSchedulerTag.Timer.repeatInterval"];
Eu só queria saber se existe uma maneira de escapar de períodos em um teclado para que eu possa eliminar essa etapa extra.
Solução
O nsdictionary não tem um ValueForKeypath: Method. Ele apenas chama a implementação do NSObject, que é a raiz do seu problema.
Talvez você possa reimplementá -lo em uma categoria no nsdictionary com seus próprios personagens de fuga.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow