在Swift中调用示例方法时没有精确匹配错误消息

h5qlskok  于 2023-05-05  发布在  Swift
关注(0)|答案(5)|浏览(147)

我以前从来没有得到过这个,这个错误消息在Swift中是什么意思:
在对示例方法“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()

Bug报告

通过www.example.com报告feedbackassistant.apple.com:FB7717686

注意:2023年5月1日Xcode 14.3版本仍然存在错误

mcdcgff0

mcdcgff01#

为什么Xcode Yelling?

也许消息文本看起来有点不言自明,但因为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**而不是NSMutableURLRequest

SwiftUI案例

假设这是你的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类型。

NSURL案例

if let url = NSURL(String: "http://example-url.com/picture.png") {
  // ...
}

解决方案

if let url = URL(String: "http://example-url.com/picture.png") {
  // ...
}

️调用示例方法'* * *'没有完全匹配

这是一条常规错误消息,表示在方法调用中使用了错误的类型。这就是为什么我在这里添加帮助他人。
我希望这个答案能帮助你们中的一些人。
最好的。

lx0bsm1f

lx0bsm1f2#

我使用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 
}
7z5jn7bk

7z5jn7bk3#

如果在**Text元素中出现此错误,请尝试值 Package 在String(describing: value)**中。搞定我的案子。

Text("Leading text \(String(describing: value))")

Source

fwzugrvs

fwzugrvs4#

当你在使当前类符合SKPaymentTransactionObserver协议之前添加SKPaymentQueue方法(比如SKPaymentQueue.default().add())到你的代码中时,Xcode会给出这个错误。
如果是这种情况,只需使您的类符合SKPaymentTransactionObserver协议即可解决此错误。

olhwl3o2

olhwl3o25#

同时检查url是否是actual url而不是String

URLSession.shared.dataTask(with: url) { data, response, error

相关问题