很抱歉,如果这是一个noob问题,但我对swift很新。
我有一个从网页获取数据并将其作为字符串保存到变量中的函数。在同一个函数中我还需要返回一个int,但是我有问题返回它们所以我可以在函数外面使用它们。来自守卫的void return语句也存在问题。
func PageData(flag: Int, pageData: String) -> (Int?, String?)
{
let URLString = url.text
guard let myURL = URL(string: URLString!) else {
print("invalid url")
return
}
do {
let pageData = try String(contentsOf: myURL, encoding: .ascii)
} catch let error {
print("Error: \(error)")
}
let flag = 1
return flag
return pageData
}
谁能告诉我我做错了什么?感谢。
答案 0 :(得分:4)
你的函数必须返回一个元组,例如:
return (flag, pageData)
答案 1 :(得分:1)
您可以从像
这样的函数返回多个值func PageData(flag: Int, pageData: String) -> (Int?, String?)
{
let URLString = url.text
guard let myURL = URL(string: URLString!) else {
print("invalid url")
return (nil, nil)
}
do {
let pageData = try String(contentsOf: myURL, encoding: .ascii)
} catch let error {
print("Error: \(error)")
}
let flag = 1
return (flag, pageData)
}
答案 2 :(得分:1)
您必须返回func本身返回的对象,因此您应该返回(Int, String)
格式。
您可以在代码中使用它:
func PageData(flag: Int, pageData: String) -> (Int?, String?) {
let URLString = url.text
guard let myURL = URL(string: URLString!) else {
print("invalid url")
return (nil, nil)
}
do {
let pageData = try String(contentsOf: myURL, encoding: .ascii)
} catch let error {
print("Error: \(error)")
}
let flag = 1
return (flag, pageData)
}