标签: swift5

Swift 5更新后Firebase可可豆荚错误

我目前正在使用Xcode版本10.2 beta 4,并将项目更新为Swift5。这样做后,我遇到了与Firebase Pods相关的大量错误。 错误的屏幕截图 我已经拆解了吊舱并重新安装,甚至尝试吊舱更新。我还多次重新启动了Xcode,无法获取这些错误以进行自我清理。

有人知道这里发生了什么吗?

xcode cocoapods firebase swift swift5

9
推荐指数
1
解决办法
828
查看次数

版本控制系统未提供作者信息

我刚刚将Xcode更新为版本10.2(10E125)。

我想提交的那一刻,我收到以下消息:

在此处输入图片说明

单击修复后:

在此处输入图片说明

我已经填写了信息,但是我仍然在上面收到该信息。

什么原因?

git xcode swift xcode10 swift5

9
推荐指数
2
解决办法
3742
查看次数

在swift 5枚举中使用@unknown默认值:如何抑制“将永远不会执行默认值”警告?

假设我有如下现有代码:

enum SomeEnumCases {
  case existing
  case alreadyExisting
}

func doSomething(withEnums enumCase: SomeEnumCases) {
  switch enumCase {
  case .existing:
    print("This case was already existing")
  case .alreadyExisting:
    print("This case was already existing too...")
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果要为枚举添加新的大小写,则上面的函数将显示一个编译错误,表明切换大小写必须是详尽无遗的,并且我将被迫处理新的丢失大小写。我会在switch语句中添加第三种情况,或添加默认语句。

现在,为了处理这种无法预料的枚举案例,我想@unknown default在上面的现有函数中添加一个案例。唯一的问题是,现在这将给我警告Default will never be executed

所以问题是,我如何将来验证我的枚举,以便可以:

  1. 详尽地处理所有当前枚举的情况,并且
  2. 对未来的未知案例具有默认的处理机制,并且
  3. 仅当添加了新的案例并且这些案例必须由默认案例处理时,才显示警告。

也就是说,以下代码不应发出警告:

enum SomeEnumCases {
  case existing
  case alreadyExisting
}

func doSomething(withEnums enumCase: SomeEnumCases) {
  switch enumCase {
  case .existing:
    print("This case was already existing")
  case .alreadyExisting:
    print("This case was already existing …
Run Code Online (Sandbox Code Playgroud)

enums warnings swift swift-playground swift5

9
推荐指数
1
解决办法
1007
查看次数

如何从呈现的 ViewController 推送?

我想做的是:

VC1 -> 呈现 VC2 -> 推送 VC3

这是我想要的正常流程。

之后在后退按钮上(每个 VC 上都有后退按钮)

我需要向用户显示后退:

VC3 -> 现在 VC2 -> VC1

如何在 Swift 5 中实现这种导航?

ios swift swift4 swift5

9
推荐指数
2
解决办法
8704
查看次数

如何在 Swift 中集成 Google reCAPTCHA

我正在开发一个 iOS 项目,客户要求将 Google reCAPTCHA 身份验证放入注册表中。那么,有什么方法可以将其作为 Android 或网站来实现。我搜索了很多,但没有得到 Swift 中 Google reCAPTCHA 的任何具体准确解决方案。我目前使用 Swift 最新版本 I,e Swift - 5,

在此形成图片链接

ios swift swift5

8
推荐指数
1
解决办法
1万
查看次数

如何在 Swift 中从 LPLinkMetadata 获取图像 URL

我正在尝试获取与给定 URL 关联的图像的 URL。使用 Apple 的LPLinkMetadata,我能够获取 URLtitledescription,但我不知道如何访问元数据的图像 URL。我可以访问,data.imageProvider但我不知道如何使用它。

import LinkPresentation

final class URLHelper {

    @available(iOS 13.0, *)
    static func fetchURLPreview(url: URL) {

        let metadataProvider = LPMetadataProvider()

        metadataProvider.startFetchingMetadata(for: url) { (metadata, error) in

            DispatchQueue.main.async {

                if let _ = error {
                    // handle error
                } else if let data = metadata {
                    let urlTitle = data.title
                    let urlImageUrl = data.????????
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

url metadata ios swift swift5

8
推荐指数
1
解决办法
4994
查看次数

验证 Swift 中抛出运行时错误的单元测试

谷歌搜索让我找到了一般的 Swift 错误处理链接,但我有一个更具体的问题。我认为这里的答案是“不,你运气不好”,但我想仔细检查一下我是否遗漏了一些东西。几年前的这个问题看起来很相似,并且有一些看起来很粗糙的解决方法的答案......我想看看最新版本的 Swift 是否使更优雅的东西成为可能。

情况:我有一个未用 标记的函数throws,并且使用try!

目标:我想创建一个单元测试来验证,是的,给这个函数错误的东西实际上会失败并抛出(运行时/致命)错误。

问题:

  1. 当我将此函数包装在 do-catch 中时,编译器警告我 catch 块无法访问。
  2. 当我运行测试并传递错误的参数时, do-catch 不会捕获错误。
  3. XCTAssertThrows也没有捕获错误。

该函数的构建目的是与另一个无声失败的函数具有相同的签名,我在模拟器上将其替换为该函数,以便在测试(自动或手动)期间可以大声失败。所以我不能只是将其更改为抛出函数,因为那样的话另一个函数必须被标记为抛出,并且我希望它默默地失败。

那么,有没有办法抛出一个可以在单元测试中捕获的未处理错误?

或者,我可以在不更改签名的情况下以可测试的方式让这个函数爆炸吗?

error-handling try-catch swift swift5

8
推荐指数
1
解决办法
1262
查看次数

Swift - 无法从 UITextField 获取真实文本 - 改为获取 NCISr 结果

我有一个 UITextField,在我的故事板中选中了“安全文本输入”。

当我将 UITextField.text 属性的文本分配给变量时,我得到的值是:

类名 = _NSClStr

而不是文本的实际值:

A B C D

如果我取消选中情节提要中的“安全文本输入”并对变量进行相同的分配,我会得到实际的文本。

分配值的代码非常简单:

passFieldText = self.passField.text!
Run Code Online (Sandbox Code Playgroud)

启用安全条目时的调试器输出:

(lldb) print passFieldText
(String) $R0 = class name = _NSClStr
Run Code Online (Sandbox Code Playgroud)

禁用安全输入时的调试器输出:

(lldb) print passFieldText
(String) $R0 = "ABCD"
Run Code Online (Sandbox Code Playgroud)

我什至尝试使用局部变量而不是类变量:

let passFieldText = self.passField.text ?? ""
Run Code Online (Sandbox Code Playgroud)

结果一样!

(lldb) print passFieldText
(String) $R0 = class name = _NSClStr
Run Code Online (Sandbox Code Playgroud)

passFieldText 被传递到另一个函数以验证密码,并且在该另一个函数中它还显示类名 = _NSClStr的值

我缺少什么?

干杯!

ios swift swift5

8
推荐指数
1
解决办法
1595
查看次数

如何将导出/导入通用类型标识符图标添加到 Xcode 12 项目?

我正在使用 Xcode 12,并且尝试为导出和导入过程添加通用类型标识符图标。

所以我尝试了以下方法来创建图标。

  1. 将 .png 文件添加到共享文件夹。
  2. 通过在线工具使用.png文件创建.icns文件并将其添加到项目中。
  3. 使用终端命令创建 .icns 文件iconutil -c icns icns.iconset

但是当我单击第一个屏幕截图的加号按钮时,

在此输入图像描述

它建议对话框中的三个文件,如第二个屏幕截图。

在此输入图像描述

如果我选择其中之一,它将不会出现在 GUI 中,并且更改不会应用于项目。请帮助我解决这个问题,我非常感谢您的反馈。

ios swift5 xcode12

8
推荐指数
1
解决办法
1754
查看次数

如何快速获取当前连接的Wifi网络的SSID | iOS 14?

我需要获取当前连接网络的 ssid。我需要它的原因是使我的应用程序能够在连接到特定网络时执行某些功能。现在我似乎无法弄清楚如何获取 ssid?我在网上阅读并实施了以下内容。

-> 允许的用户位置

-> 登录 Apple 开发者帐户并启用 Wifi 访问。

我正在使用的功能是

  func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
  if status == .authorizedAlways || status == .authorizedAlways {
    NEHotspotNetwork.fetchCurrent { hotspotNetwork in
               if let ssid = hotspotNetwork?.ssid {
                   print("SSID is \(ssid)")
               }
           }
        }
   }
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误

NEHotspotNetwork nehelper 发送 Wi-Fi 信息请求的无效结果代码 [5]

我在这里还缺少什么?我还需要添加什么吗?感谢任何帮助!

nehotspothelper swift5 ios14

8
推荐指数
1
解决办法
1万
查看次数