在我的watchOS 2 Apple Watch WatchKit扩展中,我使用NSURL和NSData来请求URL并检索它发送的
JSON.但是,这只适用于模拟器.起初我遇到了问题,因为我使用了不受信任的地址(内部IP地址),但在向Info.plist添加了一些键和值之后,这个问题得到了解决.为了完全确定URL是可信的,我使用了
GitHub API(
https://api.github.com/users/mralexgray/repos)中的一个开放URL.我使用以下代码来检索响应:
var responseData: NSData? = nil
if let url = NSURL(string: "https://api.github.com/users/mralexgray/repos") {
if let data = NSData(contentsOfURL: url){
responseData = data
}
}
在我的watchOS 2模拟器上,responseData正确填充,但在我的Apple Watch设备上,它看起来像第3行,它的正文刚刚被跳过.这是一个问题,功能还是我做错了什么?
最佳答案 这听起来像NSData方法中的一个错误,contentsOfURL:选项:错误:说文件无法打开.
NSURLSession工作正常.
NSURL * url = [NSURL URLWithString:@"https://api.github.com/users/mralexgray/repos"];
NSURLSessionDataTask *downloadTask = [[NSURLSession sharedSession]
dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"data size %ld", (unsigned long)data.length);
}];
[downloadTask resume];