在我的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行并且它的正文刚刚被跳过。这是一个问题,功能还是我做错了什么?
答案 0 :(得分:2)
这听起来像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];