swift – 设备上的watchOS 2无法读取NSData

在我的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];
点赞