Swift URL 有 3 个语法问题
Swift 3 syntax issues with URL
我正在尝试将 C# 示例转换为 Xcode 8 中的 swift,但我一直遇到语法问题。请参阅代码的小示例:
public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
public init() {
APIManagerBaseAddress = URL(String: "https://path.to.baseurl/")
APIBaseAddress = URL(String: APIManagerBaseAddress + "append/path/data/")
}
}
APIManagerBaseAddress 我收到错误
Argument labels '(String:)' do not match any available overloads
以及 APIManagerBaseAddress
Binary operator '+' cannot be applied to operands of type 'URL!' and 'String'
感谢任何帮助,因为我尝试了一大堆语法可能性:)
-edit- 感谢大家的帮助和建议!
使用string
代替String
public init() {
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")
APIBaseAddress = URL(string: APIManagerBaseAddress + "append/path/data/")
}
这就是您在 Swift
中编写代码的方式
public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
public init() {
//It is string not String in here
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")
// you can add values like that in Swift
APIBaseAddress = URL(string: URL(string: "\(APIManagerBaseAddress)append/path/data/"))
}
}
首先是init(string:)
not init(String:)
also use appendingPathComponent
和APIManagerBaseAddress
。
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")!
// you can add values like that in Swift
APIBaseAddress = APIManagerBaseAddress.appendingPathComponent("append/path/data/")
给你。我将您的路径插入一个变量(如果您打算以编程方式更改路径,请将 let 更改为 var)并缩短了您的代码。
希望对您有所帮助。
public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
let path = "append/path/data/"
public init() {
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/\(path)")
}
}
我正在尝试将 C# 示例转换为 Xcode 8 中的 swift,但我一直遇到语法问题。请参阅代码的小示例:
public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
public init() {
APIManagerBaseAddress = URL(String: "https://path.to.baseurl/")
APIBaseAddress = URL(String: APIManagerBaseAddress + "append/path/data/")
}
}
APIManagerBaseAddress 我收到错误
Argument labels '(String:)' do not match any available overloads
以及 APIManagerBaseAddress
Binary operator '+' cannot be applied to operands of type 'URL!' and 'String'
感谢任何帮助,因为我尝试了一大堆语法可能性:)
-edit- 感谢大家的帮助和建议!
使用string
代替String
public init() {
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")
APIBaseAddress = URL(string: APIManagerBaseAddress + "append/path/data/")
}
这就是您在 Swift
中编写代码的方式public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
public init() {
//It is string not String in here
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")
// you can add values like that in Swift
APIBaseAddress = URL(string: URL(string: "\(APIManagerBaseAddress)append/path/data/"))
}
}
首先是init(string:)
not init(String:)
also use appendingPathComponent
和APIManagerBaseAddress
。
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/")!
// you can add values like that in Swift
APIBaseAddress = APIManagerBaseAddress.appendingPathComponent("append/path/data/")
给你。我将您的路径插入一个变量(如果您打算以编程方式更改路径,请将 let 更改为 var)并缩短了您的代码。
希望对您有所帮助。
public class ToonAPIClient {
private var APIManagerBaseAddress: URL!
private var APIBaseAddress: URL!
let path = "append/path/data/"
public init() {
APIManagerBaseAddress = URL(string: "https://path.to.baseurl/\(path)")
}
}