要准确回答您提出的问题:
[NSURL fileURLWithPath:@"wallpaper"]
但实际上将文件写入您传递给 NSWorkspace 的同一 URL 更有意义,如下所示:
NSURL *url = [NSURL fileURLWithPath:@"wallpaper"];
[imageData writeToURL:url atomically:NO];
[[NSWorkspace sharedWorkspace] setDesktopImageURL:url …];
选择一个放置文件的好地方更有意义。作为一般规则(即使在软件之外),如果您知道将某些东西放在哪里,那么以后找到它比告诉某人“把它放在某个地方”要容易得多。而你具体的“把它放在某个地方”实际上意味着“把它放在当前工作目录中”,这可能是你没有写权限的地方,或者用户不希望你弄乱的地方,或者它可能已经有了其中有一个名为“壁纸”的文件(或目录),或者……</p>
因此,您可能想要调用 -[NSFileManager URLForDirectory:inDomain:appropriateForURL:create:error:] 来获取 NSTemporaryDirectory,或者使用不同的临时文件 API。或者您可能希望将其放在应用程序的缓存目录中,而不是临时位置。任何对你来说都有意义的事情。
此外,您可能希望在文件上添加适当的扩展名。而且,在不知道您从哪里获得 imageData 的情况下,我不确定您是否会获得可用的图像文件。但这都是单独的问题。