繁体   English   中英

将原始数据“AnyObject?”转换为NSData或String

[英]Convert Raw Data “AnyObject?” to NSData or String

我在最近几天一直被困在这里,并在Stackoverflow和网络上阅读了无数的帖子,但我仍然有点失落。 (顺便说一下,我在Swift中是一个新手)。

我有以下代码

Alamofire.request(.GET, "url") .response { (request, response, data, error) in printIn(data)}

这会在控制台中打印出一长串数字,这是完美的,正是我需要的。

但是我现在想迭代这些并获取某个索引的数字,所以想将它转换为字符串或NSData。

我尝试了很多不同的方法,但还没有找到如何做到这一点,如果有人能帮助我,我将非常感激。

我试过用

Alamofire.request(.GET, "url")
    .responseString(encoding: NSASCIIStringEncoding) { (request, response, data, error) -> Void in
        println(data)
    }

但这只能打印出乱七八糟的混乱。

非常感谢

克里斯

你说:

但是我现在想迭代这些并获取某个索引的数字,所以想将它转换为字符串或NSData

使用responsedata参数实际上 NSData 因此,只需将变量转换为适当的类型,您就应该开展业务,例如:

Alamofire.request(.GET, urlString)
    .response { (request, response, data, error) in
        if let data = data as? NSData {
            for i in 0 ..< data.length {
                var byte: UInt8!
                data.getBytes(&byte, range: NSMakeRange(i, 1))
                print(String(format: "%02x ", byte))
            }
        }
}

在我的示例循环中,只记录byte变量的十六进制字符串表示,但它是一个数值,您可以使用它来执行任何您想要的操作。

数据是NSData和ascii编码(在你的第二个例子中)

let s = NSString(data: data, encoding: NSASCIIStringEncoding)

在第一种情况下,您没有指定编码,因此它默认为NSUTF8

let s = NSString(data: data, encoding: NSUTF8StringEncoding)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM