我正在尝试使用以下代码更改桌面图片:
NSError *anError = nil;
NSString *imageURLString = [[NSBundle mainBundle] pathForResource:@"wallpaper" ofType:@"jpg"];
NSURL *imageURL = [NSURL URLWithString:imageURLString];
[[NSWorkspace sharedWorkspace] setDesktopImageURL:imageURL forScreen:[NSScreen mainScreen] options:nil error:&anError];
但它始终在控制台中抛出此异常消息:
Invalid parameter not satisfying: url != nil && [url isFileURL]
当我尝试记录 - [url isFileURL]时,它返回NO,我无法弄清楚。
当我尝试打印imageURL的描述时,它打印了以下消息:
<CFURL 0x100165c50 [0x7fff7f508ea0]>{type = 15, string = /Users/miraaj/Library/Developer/Xcode/DerivedData/DesktopFun-cevkcaebvcfnstgqbulqyibcfvru/Build/Products/Debug/DesktopFun.app/Contents/Resources/wallpaper.jpg, encoding = 134217984, base = (null)}
有谁能告诉我这个问题的原因?
答案 0 :(得分:2)
您使用了错误的方法来创建NSURL
。你想要
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"wallpaper" ofType:@"jpg"];
NSURL* imageURL = [NSURL fileURLWithPath:imagePath isDirectory:NO];
或者,您可以直接从NSURL
(10.6及更高版本)保存步骤并获得NSBundle
:
NSURL* imageURL = [[NSBundle mainBundle] URLForResource:@"wallpaper" withExtension:@"jpg"];