com.apple.schedulerplistでrepeatIntervalキーの値を取得しようとしています。NSDictionaryのvalueForKeyPath:メソッドを次のように使用したいと思います。
CFPropertyListRef value;
value = CFPreferencesCopyValue(CFSTR("AbsoluteSchedule"),
CFSTR("com.apple.scheduler"),
kCFPreferencesCurrentUser,
kCFPreferencesCurrentHost);
NSNumber *repeatInterval = [(NSDictionary *)value valueForKeyPath:@"com.apple.SoftwareUpdate.SUCheckSchedulerTag.Timer.repeatInterval"];
しかし、これに伴う問題は、最初のキーが「com」だけでなく、実際には「com.apple.SoftwareUpdate」であるということです。最初の値を個別に取得することで、これを回避できます。
NSDictionary *dict = [(NSDictionary *)value valueForKey:@"com.apple.SoftwareUpdate"];
NSNumber *repeatInterval = [dict valueForKeyPath:@"SUCheckSchedulerTag.Timer.repeatInterval"];
この余分なステップを排除できるように、キーパスのピリオドをエスケープする方法があるかどうかを知りたかっただけです。