我想使用DecodableSwift 4中引入的新协议解码XML文档,但是,似乎没有符合Decoder协议的XML解码器的现有实现.
我的计划是使用SWXMLHash库来解析XML,然后可能使该XMLIndexer库中的类扩展Decoder协议,以便可以使用XMLIndexer(XMLIndexer返回SWXMLHash.parse(xmlString))实例初始化我的模型.
我的问题是我不知道如何实现Decoder协议,我似乎无法在网上找到任何解释它是如何完成的资源.我发现的每一个资源都严格地提到了JSONDecoderSwift标准库中包含的类,没有找到的资源解决了创建自己的自定义解码器的问题.
这是我的代码块,
var a = 0;
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
responseString = NSString(data: data, encoding: NSUTF8StringEncoding)!
let xmlWithNamespace = responseString
var xml = SWXMLHash.parse(xmlWithNamespace)
var entity = xml["row"]["ftc"]["Entity"][a]
if entity.element?.attributes["ID"] != nil {
entity = xml["row"]["ftc"]["Entity"][a]
//println(a)
println(entity.element?.attributes["ID"])
a++
} else {
println("Print We Have Reached Our Limit")
}
}
task.resume()
Run Code Online (Sandbox Code Playgroud)
我试图让一个迭代器通过并打印出这些内部的所有子项和属性并将它们存储在变量中.
我一直在寻找一些帮助,但Swift和XML只是一个令人头痛的问题 - 任何帮助让我迭代通过节点会很惊人,我尝试使用while循环,但它只是在给我节点后崩溃了程序.
我试图在循环中使用它,但即使这样也行不通,
while entity.element?.attributes["ID"] != nil {
entity = xml["row"]["ftc"]["Entity"][a]
//println(a)
println(entity.element?.attributes["ID"])
a++
break …Run Code Online (Sandbox Code Playgroud) 我在我的项目中安装了Alamofire,现在这就是我所做的.
我安装了邮差,我把我的网址和内部的一个xml对象,我得到了我的结果.
这是我对邮递员所做的一切
我现在如何使用Alamofire或SWXMLHash发送它,因为我发送邮件
提前致谢!
编辑
我从另一个问题尝试了这个:
Alamofire.request(.POST, "https://something.com" , parameters: Dictionary(), encoding: .Custom({
(convertible, params) in
let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
let data = (self.testString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
mutableRequest.HTTPBody = data
return (mutableRequest, nil)
}))
.responseJSON { response in
print(response.response)
print(response.result)
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有发送任何东西
这是日志:
可选({URL:https: //something.com } {状态代码:200,headers {Connection ="keep-alive";"Content-Length"= 349;"Content-Type"="application/xml";日期="Wed,2016年11月2日21:13:32 GMT"; Server = nginx;"Strict-Transport-Security"="max-age = 31536000; includeSubDomains";}})
失败
编辑
如果没有简单的添加,请不要忘记参数参数:参数:Dictionary()
我正在关注本教程:https : //medium.com/flawless-app-stories/ios-remote-push-notifications-in-a-nutshell-d05f5ccac252
但是由于某种原因,我越来越
无法将“ AppDelegate”分配给“ UNUserNotificationCenterDelegate”。
那条线是做什么的?如果我将其注释掉,其余代码将正常工作,并且如果用户希望允许通知,则会提示用户。
func registerForPushNotifications() {
UNUserNotificationCenter.current().delegate = self // line in question
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) {
(granted, error) in
print("Permission granted: \(granted)")
// 1. Check if permission granted
guard granted else { return }
// 2. Attempt registration for remote notifications on the main thread
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}
Run Code Online (Sandbox Code Playgroud)