设备上的watchOS 2无法读取NSData

时间:2015-09-24 19:09:48

标签: swift apple-watch watch-os-2

在我的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行并且它的正文刚刚被跳过。这是一个问题,功能还是我做错了什么?

1 个答案:

答案 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];