我正在开发一个小型实用程序,可以将 plist 文件复制到 Dropbox,以便我可以在两台计算机之间同步该 plist 文件。在 10.9 中,对首选项的更改会被缓存,并且仅在应用程序或 cfprefsd 请求时才写入磁盘。
我是否可以使用 CFPreferencesAppSynchronize 告诉系统将任意应用程序的新存在写入磁盘?例如,如果我想同步我的 finder 首选项,我可以让我的小应用程序调用 CFPreferencesAppSynchronize 与 finder (com.apple.finder) 相关吗?下面的代码似乎不起作用,但没有抛出错误:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here..
NSString *stringApplicationID = @"com.apple.finder";
CFStringRef applicationIDfinder = (__bridge CFStringRef)stringApplicationID;
Boolean CFPreferencesSynchronize (
CFStringRef applicationIDfinder,
CFStringRef kCFPreferencesAnyUser,
CFStringRef kCFPreferencesAnyHost
);
return 0;
}
}