我目前正在开发一个从网络服务请求数据的应用程序,其中一个数据是检索的,我称之为创建一些像“tinder”这样的“swype”卡的方法。
问题是,我没有成功在viewDidload中调用我的方法,这是我的代码:
if(success == 1) {
NSLog("Recherche OK");
//Call the swype method
}
这是我的方法:
func fetchData(int: Int, completion: (()->())?) {
let newCard = Model()
//ttp://thecatapi.com/api/images/get?format=src&type=png
if let url = NSURL(string: "http://test.com/api/images/get?format=src&type=png") {
if let data = NSData(contentsOfURL: url) {
newCard.image = UIImage(data: data)
newCard.content = "test"
newCard.desc = "test"
self.data.append(newCard)
NSLog("fetch new data")
}
你有个主意吗?
答案 0 :(得分:0)
请阅读有关从网络电话中获取NSData的更多信息。以下是来自Apple文档
请勿使用此同步方法来请求基于网络的网址。对于 基于网络的URL,此方法可以阻止当前线程为数十 慢速网络上的秒数,导致用户体验不佳,以及 在iOS中,可能会导致您的应用被终止。
相反,对于非文件网址,请考虑使用 dataTaskWithURL:completionHandler:NSSession类的方法。看到 URL加载系统编程指南了解详细信息。
另外我注意到你正在显示重定向的网址,所以也许这就是问题所在。您可以创建UIWebview并在那里显示图像,而不是尝试在UIImage中加载它。
您可以在answer here
中找到与Swift相关的帮助