Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 我可以在任意应用程序上使用CFPreferencesAppSynchronize吗?_Objective C_Macos_Cfpreferences - Fatal编程技术网

Objective c 我可以在任意应用程序上使用CFPreferencesAppSynchronize吗?

Objective c 我可以在任意应用程序上使用CFPreferencesAppSynchronize吗?,objective-c,macos,cfpreferences,Objective C,Macos,Cfpreferences,我有一个我正在开发的小实用程序,它将plist文件复制到Dropbox,这样我就可以在两台计算机上同步plist文件。在10.9中,对首选项的更改被缓存并仅写入磁盘 我是否可以使用CFPreferencesAppSynchronize告诉系统将任意应用程序的新存在写入磁盘?例如,如果我想同步我的finder首选项,我可以让我的小应用程序调用CFPreferencesAppSynchronize与finder(com.apple.finder)同步吗?下面的代码似乎不起作用,但不会引发错误: #i

我有一个我正在开发的小实用程序,它将plist文件复制到Dropbox,这样我就可以在两台计算机上同步plist文件。在10.9中,对首选项的更改被缓存并仅写入磁盘

我是否可以使用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;
}

}
#导入
int main(int argc,const char*argv[]{
@自动释放池{
//在此处插入代码。。
NSString*stringApplicationID=@“com.apple.finder”;
CFStringRef应用程序ID=(u桥CFStringRef)stringApplicationID;
布尔CFPreferencesSynchronize(
CFStringRef应用程序文件夹,
CFStringRef kCFPreferencesAnyUser,
CFStringRef kCFPreferencesAnyHost
);
返回0;
}
}

实际上,更改发生在10.8中,而不是10.9中(尽管它在10.9中进一步更改)。没有可靠的方法来操作或与磁盘上的plist交互,它们只是preferences系统的一个实现细节

如果您想同步它们,我的建议是读取首选项并使用NSPropertyListSerialization将它们写入dropbox同步位置。然后在连接的另一端,自己阅读并在CFPreferences中设置它们