使用Objective-C获取每日必应壁纸设置为桌面
来源:互联网 发布:淘宝订单险坑卖家 编辑:程序博客网 时间:2024/06/04 20:00
初学objective-c,发现有c/c++基础入门太容易了,于是写了个设置必应壁纸桌面来练手
//// main.m// OCTest//// Created by ddc on 16/1/3.// Copyright © 2016年 ddc. All rights reserved.//@import AppKit;@interface BingImage : NSObject{}@property NSString* api_;+ (id) initWithApiUrl:(NSString*)apiUrl;- (nullable NSString*) getImageUrl:(int)dayIndex dateStr:(NSString**)date;- (bool) downloadImage:(NSString**)filename date:(int)dayIndex;@end@implementation BingImage+ (id) initWithApiUrl:(NSString *)apiUrl { BingImage* image = [[BingImage alloc] init]; image.api_ = apiUrl; return image;}- (nullable NSString*) getImageUrl:(int)dayIndex dateStr:(NSString**)dateStr { NSURL* url = [NSURL URLWithString:self.api_]; NSData* data = [NSData dataWithContentsOfURL:url]; if(data) { id json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; if(json) { id day = [[json objectForKey:@"images"] objectAtIndex:dayIndex]; if(dateStr) { *dateStr=[day objectForKey:@"enddate"]; } return [day objectForKey:@"url"]; } } return nil;}- (bool) downloadImage:(NSString**)filename date:(int)dayIndex { NSString* dateStr = nil; NSURL* url = [NSURL URLWithString:[self getImageUrl:dayIndex dateStr:&dateStr]]; NSData* data = [NSData dataWithContentsOfURL:url]; if(data){ if(filename) { *filename = [NSString stringWithFormat:@"/tmp/bing_wallpaper_%@.jpg", dateStr]; } [data writeToFile:*filename atomically:YES]; return YES; } return NO;}@endvoid setDesktopImage(NSString* filename){ NSError *err = nil; NSWorkspace* space = [NSWorkspace sharedWorkspace]; bool ret = [space setDesktopImageURL:[NSURL fileURLWithPath:filename] forScreen:[NSScreen mainScreen] options: nil error: &err]; if(ret) { NSLog(@"setDesktopImage succeeded"); } else{ NSLog(@"setDesktopImage failed: %@", err); }}int main(int argc, const char * argv[]) { @autoreleasepool { @try { NSString *filename = nil; BingImage* bing = [BingImage initWithApiUrl:@"http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=8&mkt=en-US"]; if(![bing downloadImage:&filename date:0]) { @throw [[NSException alloc] initWithName:@"" reason:@"download file error" userInfo: nil]; } setDesktopImage(filename); } @catch (NSException *exception) { NSLog(@"excepted: %@", exception); return 1; } } return 0;}
0 0
- 使用Objective-C获取每日必应壁纸设置为桌面
- Python抓取每日必应壁纸
- Python_必应每日壁纸更换
- [Python] 抓取必应每日一图,设置为桌面壁纸
- Python_必应每日壁纸更换(Python2.7)
- 使用java将bing的每日壁纸设置为ubuntu壁纸
- 获取必应每日一图网址
- 用java将bing每日壁纸设置为win7壁纸
- Java获取必应每日一图教程
- Ubuntu16.04自动更换必应壁纸
- Qt之http通讯简单用法 /编写必应主页小爬虫,获取当日壁纸
- 动态获取Bing每日壁纸
- 设置Android默认壁纸为动态壁纸
- 设置Android默认壁纸为动态壁纸
- 设置Android默认壁纸为动态壁纸
- 设置Android默认壁纸为动态壁纸
- 设置Android默认壁纸为动态壁纸
- Qt下载必应的每日图片,Windows API设置桌面背景
- 安装 tengine
- jquery操作select(取值,设置选中)
- PKI体系及常见证书
- cJSON代码阅读(6)——解析JSON数值
- 安卓动画技术
- 使用Objective-C获取每日必应壁纸设置为桌面
- Html5添加图片分类过滤特效插件教程
- maven仓库找不到需要的jar包解决办法
- SVN创建新文件不能提交的处理
- 仿IOS Switch控件
- 数据库设计步骤--了解用户需求:与客户会面
- 安装Hadoop,启动hadoop(每次都用),设置免密码登陆
- 全站HTTPS来了!有何优势、与HTTP有何不同?
- Js闭包的用途