gpt4 book ai didi

ios - 如果字符串包含某些字符,Swift 会删除扩展字符吗?

转载 作者:行者123 更新时间:2023-11-30 12:47:41 32 4
gpt4 key购买 nike

我知道标题很复杂,但本质上我正在尝试这样做

    let gif = UIImage(gifName: (String(format: "%03d", self.animal.speciesId!)))
self.gifIBO.setGifImage(gif, manager: gifManager)
gifIBO.contentMode = UIViewContentMode.center

这是我的代码。我有一个正在抓取的图像集合,这些图像使用格式“%03d”进行编号,例如:(001, 002, 010)。然而,我有超过 1000 张图像,其中一些图像包含额外的字母。

例如:300-f.gif、231-m.gif

这些图像被跳过。我当前的解决方案是重命名每个具有扩展字符的图像。当 swift 发现满足某些要求的图像时,是否有任何本地方法可以删除这些扩展字符?

例如。如果它找到图像 300-f.gif 但前三个字符匹配,则需要删除字符串的其余部分并使用该图像,而不是跳过它并返回

Could not find 300.gif

在控制台上。

最佳答案

您可以迭代 bundle 中的所有 gif,并查找以 speciesId 开头的:

let gif = Bundle.main.urls(forResourcesWithExtension: "gif", subdirectory: nil)!
.first {
let pattern = String(format: "%03d(-.)?", speciesId)
return $0.lastPathComponent.range(of: pattern, options: [.regularExpression]) != nil
}.map {
UIImage(contentsOfFile: $0.path)!
}
  • Bundle.main.urls(...) 列出主包中的所有 gif 文件
  • first 搜索名称符合特定条件的第一个文件。条件是基于您的 speciesId 的正则表达式模式。该模式的结果类似于 001(-.)?,这是正则表达式的表达方式:“字符串 001,可选地后跟破折号 ( -)和另一个字母(. 表示任何字母)”
  • map 将路径转换为 ​​UIImage 供您使用

关于ios - 如果字符串包含某些字符,Swift 会删除扩展字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41413339/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com