Swift 中的实例方法错误消息调用中没有完全匹配
No exact matches in call to instance method error message in Swift
我以前从来没有得到过,Swift中的这个错误信息是什么意思:
No exact matches in call to instance method 'dataTask(with:completionHandler:)'
这是我的代码块:
var request: NSMutableURLRequest? = nil
let task = URLSession.shared.dataTask(
with: request,
completionHandler: { data, response, error in
DispatchQueue.main.async(execute: {
/// ...
})
})
task.resume()
错误报告
通过 feedbackassistant.apple.com 报告:FB7717686
为什么Xcode大喊大叫?
也许消息文本看起来有点不言自明但仅仅因为Xcode没有准确指向参数本身,第一次有点难以理解时间.
Xcode 大喊大叫,因为该方法想要在方法调用中查看 确切的参数类型,这很容易。
示例案例的解决方案:
var request: URLRequest? = nil
let task = URLSession.shared.dataTask(
with: request!,
completionHandler: { data, response, error in
DispatchQueue.main.async(execute: {
})
})
task.resume()
刚用过URLRequest instead of the NSMutableURLRequest.
Swift 的解决方案UI 示例
我们假设这是您的 UI:
ZStack() {
Image(systemName: "photo")
.resizable()
.aspectRatio(contentMode: .fit)
.background(Color.green)
.foregroundColor(Color.white)
.cornerRadius(12)
Text(getToday())
.font(.headline)
}
}
这是您在 Text(...) 中调用的方法:
func getToday() -> Any?
{
let now = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.day], from: now)
return components.day
}
在上面的示例中,解决方案是将 Any? 更改为 String 类型。
调用实例方法“* * *”时没有完全匹配
这是一条一般错误消息,因为在方法调用中使用了错误的类型。这就是为什么我在这里添加以帮助其他人。
我希望这个回答能对你们中的一些人有所帮助。
最佳。
我将 dataTask
与 URL 一起使用,但我将 URL 展开为 NSURL
,这就是它给我错误的原因。
我是这样做的:
if let url = NSURL(String: "http://myyrl.com/filename.jpg") {
//my code
}
修复错误的方法是将 NSURL
替换为 URL
:
if let url = URL(String: "http://myyrl.com/filename.jpg") {
//my code
}
如果您在 Text
元素中遇到此错误,请尝试 wrapping 您在 [=18= 中的值]String(describing: value)
。解决了我的问题。
Text("Leading text \(String(describing: value))")
Xcode 在使当前 class 符合 SKPaymentTransactionObserver
之前添加 SKPaymentQueue
方法(例如 SKPaymentQueue.default().add()
到您的代码时会出现此错误协议。
如果是这种情况,只需让您的 class 符合 SKPaymentTransactionObserver
协议即可解决此错误。
我以前从来没有得到过,Swift中的这个错误信息是什么意思:
No exact matches in call to instance method 'dataTask(with:completionHandler:)'
这是我的代码块:
var request: NSMutableURLRequest? = nil
let task = URLSession.shared.dataTask(
with: request,
completionHandler: { data, response, error in
DispatchQueue.main.async(execute: {
/// ...
})
})
task.resume()
错误报告
通过 feedbackassistant.apple.com 报告:FB7717686
为什么Xcode大喊大叫?
也许消息文本看起来有点不言自明但仅仅因为Xcode没有准确指向参数本身,第一次有点难以理解时间.
Xcode 大喊大叫,因为该方法想要在方法调用中查看 确切的参数类型,这很容易。
示例案例的解决方案:
var request: URLRequest? = nil
let task = URLSession.shared.dataTask(
with: request!,
completionHandler: { data, response, error in
DispatchQueue.main.async(execute: {
})
})
task.resume()
刚用过URLRequest instead of the NSMutableURLRequest.
Swift 的解决方案UI 示例
我们假设这是您的 UI:
ZStack() {
Image(systemName: "photo")
.resizable()
.aspectRatio(contentMode: .fit)
.background(Color.green)
.foregroundColor(Color.white)
.cornerRadius(12)
Text(getToday())
.font(.headline)
}
}
这是您在 Text(...) 中调用的方法:
func getToday() -> Any?
{
let now = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.day], from: now)
return components.day
}
在上面的示例中,解决方案是将 Any? 更改为 String 类型。
调用实例方法“* * *”时没有完全匹配
这是一条一般错误消息,因为在方法调用中使用了错误的类型。这就是为什么我在这里添加以帮助其他人。
我希望这个回答能对你们中的一些人有所帮助。
最佳。
我将 dataTask
与 URL 一起使用,但我将 URL 展开为 NSURL
,这就是它给我错误的原因。
我是这样做的:
if let url = NSURL(String: "http://myyrl.com/filename.jpg") {
//my code
}
修复错误的方法是将 NSURL
替换为 URL
:
if let url = URL(String: "http://myyrl.com/filename.jpg") {
//my code
}
如果您在 Text
元素中遇到此错误,请尝试 wrapping 您在 [=18= 中的值]String(describing: value)
。解决了我的问题。
Text("Leading text \(String(describing: value))")
Xcode 在使当前 class 符合 SKPaymentTransactionObserver
之前添加 SKPaymentQueue
方法(例如 SKPaymentQueue.default().add()
到您的代码时会出现此错误协议。
如果是这种情况,只需让您的 class 符合 SKPaymentTransactionObserver
协议即可解决此错误。