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.

Foi útil?

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
scroll top