UIApplicationMain 上的 swift 5 中的 Xcode 警告

An Xcode warning in swift 5 on UIApplicationMain

提问人:AndersHJ 提问时间:10/19/2022 更新时间:10/19/2022 访问量:490

问:

在我的项目中,有一个主.swift文件,其中包含以下代码:

UIApplicationMain(CommandLine.argc,
                  UnsafeMutableRawPointer(CommandLine.unsafeArgv)
                    .bindMemory(
                        to: UnsafeMutablePointer<Int8>.self,
                        capacity: Int(CommandLine.argc)),
                  NSStringFromClass(Application.self),
                  NSStringFromClass(AppDelegate.self)
)

警告是:

“'UIApplicationMain' 已弃用:使用 UIApplicationMain 的重载,其中第二个参数的类型为 UnsafeMutablePointer<UnsafeMutablePointer?>,这与 CommandLine.unsafeArgv 的类型相同。”

谁能详细说明这个警告在说什么,并举例说明如何按照它的建议去做?

非常感谢,谢谢。

Swift Xcode UIKit警告

评论


答:

3赞 JeremyP 10/19/2022 #1

我还没有验证这个答案,但它很想发表评论。

这与 CommandLine.unsafeArgv 的类型相同。

这似乎意味着您可以直接使用。即CommandLine.unsafeArgv

UIApplicationMain(CommandLine.argc,
                  CommandLine.unsafeArgv,
                  NSStringFromClass(Application.self),
                  NSStringFromClass(AppDelegate.self)

即使不是,你的返回类型也与预期的略有不同。外部的泛型类型应为可选类型。即bindUnsafeMutablePointer<UnsafeMutablePointer<Int8>>UnsafeMutablePointerUnsafeMutablePointer<UnsafeMutablePointer<Int8>?>

评论

0赞 Martin R 10/19/2022
是的,编译时没有错误或警告。
0赞 JeremyP 10/20/2022
@MartinR但它运行:)
0赞 JeremyP 10/20/2022
@MartinR我想它必须运行,因为它已被接受。
1赞 AndersHJ 10/20/2022
@JeremyP 它运行并且运行时没有错误或警告。谢谢!