[英]Swift if there is data populate Dictionary, if not nill
我在这里有此代码:
var credential: NSURLCredential!
func loginUser(username: String, password: String) -> Dictionary<String, AnyObject> {
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
credential = NSURLCredential(user:username, password:password, persistence: .ForSession)
let requestString = NSString(format:"%@", webservice) as String
let url: NSURL! = NSURL(string: requestString)
var dataString: Dictionary<String, AnyObject>
let task = session.dataTaskWithURL(url, completionHandler: {
data, response, error in
dispatch_async(dispatch_get_main_queue(),
{
do
{
dataString = (try NSPropertyListSerialization.propertyListWithData(data!, options: NSPropertyListReadOptions.Immutable, format: nil)) as! Dictionary<String, AnyObject>
}
catch
{
dataString = nil
}
})
})
task.resume()
return dataString
}
我想做的是以下操作,将NSData转换为Dictionary。 如果失败或没有数据,则返回nill或空的Dictionary。 我该怎么做?
您正在从网络上完成网络任务之前返回。 您应该使用完成块,当您收到响应时可以调用它。 即在您的函数中添加完成处理程序,然后从您的网络服务调用的完成块中调用它。 请参阅此链接以获取更多详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.