我使用URLSession.shared.dataTask(with:completionHandler:)来访问一个API,在某些情况下,它不会立即响应。我还需要在某些条件下取消悬而未决的请求。
我当前的实现使用了completionHandler方法,多个请求可以并行进行。这使得将模式更改为委托非常不方便。
我正在尝试的是将所有挂起的任务存储在一个集合中,然后在它们完成后将任务从集合中移除。问题是从完成处理程序内部访问dataTask返回似乎非常麻烦,在某种程度上我甚至不确定这是否正确。
class API {
private var tasks: Set<URLSessionT
我试图在Swift 3开发快照中发出POST请求,但由于某种原因,对NSURLSession.dataTask的调用由于标题中的错误而失败。
下面是我使用的代码:
import Foundation
var err: NSError?
var params: Dictionary<String, String>
var url: String = "http://notreal.com"
var request = NSMutableURLRequest(url: NSURL(string: url)!)
var session = NSURLSession.s
目前,我正在从一个web开发背景中学习“快速”,我有点被困在做一个简单的网络请求。
我正在使用下面的文档来了解URLSession和dataTask,但是我似乎对文档如何使用with有一个概念上的误解。(如有任何解释,将不胜感激)
这是我的代码:
import Foundation
let url = URL(string: "https://swapi.co/api/people/1/")
let urlSession = URLSession.shared
func completionHandler (_ data : Data?, _ response : UR
当传入的JSONDecoder.decode与数据类型不匹配时,JSON方法不会抛出错误。
我有一个这样的数据模型,它将JSON映射到用户配置文件:
struct DrivetimeUserProfile: Codable {
var driverId: String?
var name: String?
var email: String?
var phoneNumber: String?
var city: String?
var state: String?
var experience: Int?
private en
查看 for URLSession.dataTask,很明显这个函数是异步调用的,但是没有提到completionHandler是否返回到主线程、调用它的线程还是仍然在执行dataTaskOperation的线程上。
这里会有一个普遍的会议吗?
let task = URLSession.shared().dataTask(with: request) {
//What Thread are we on here?
}
我试图从API中获取json数据,将其解析为一个struct数组,并打印该数组。但是,当我试图打印出来时,只返回一个空白数组。我正在努力理解如何为异步操作编写代码,并且不确定从哪里开始。谁能帮我指出正确的方向吗?我正在操场上试用Xcode 9,Swift 4。
import Foundation
struct Item: Decodable {
var userId: Int?
var id: Int?
var title: String?
var body: String?
}
var items = [Item?]()
let completion
我一直在看苹果的:"Networking with NSURLSession“。最后,演讲者提到了URLSessionStreamTask,它可用于直接套接字I/O。他还提到了如何将(超文本传输协议)代理连接转换为流任务。
幻灯片包含:
NSURLSessionStreamTask
DataTask conversion
NSURLSessionDataTask may be converted to a stream task
• Use NSURLSession to get through HTTP proxies
Conversion can occur when respo
我是iOS开发的初学者。我想通过身份验证从IBM Domino服务器访问一些数据。代码只能返回服务器的登录页面。有人知道哪里出问题了吗?(对我的英语表示抱歉)
下面是我获取数据的代码:
class URLSessionTest: NSObject, URLSessionDelegate {
let user = "myUser"
let password = "myPwd"
let url = URL.init(string: "https://www.example.com/Test.nsf/0/91182C6C9EEE0414C12580A3003
我正在研究气象API。获取以下代码中的错误:
fileprivate let openWeatherMapBaseURL = "http://api.openweathermap.org/data/2.5/weather"
fileprivate let openWeatherMapAPIKey = "b7ac98fd9b59acbe6078468d865bd908"
func getWeather(_ city: String) {
// This is a pretty simple networking task, so the shared