• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - swift 3 创建小写搜索字符串的正确方法

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:29:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我需要在我的应用程序的搜索功能中使用字符串。我没有太多的编码经验,但是通过谷歌搜索、教程和一些试验和错误来获得。

下面的方法有效,它只创建了我需要的东西,但我注意到它大大减慢了编译时间,所以我认为有更好/更智能的方法来做到这一点?通过谷歌搜索,我没有得到太多答案。

 let searchText: String? = ("\(self.noseTextView?.text)"
+"\(self.palateTextField?.text)"+"\(self.finishTextField?.text)"
+"\(self.overallTextField?.text)"+"\(self.otherTextField?.text)"
+"\(self.glassTextField?.text)"+"\(bottleName2)"
+"\(self.distilleryTextField?.text)").lowercased()

谁能教我一个更好的方法来达到同样的结果?

编辑:

一个适合我的代码的答案,(或者我对它的解释来自 Özgür Ersil,下面),这是可行的。

//creates lowercase String for labels to save compiling time
func getText(textLabel: UILabel)->String{
    return textLabel.text!.lowercased()
}
    //creates lowercase String for TextFields to save compiling time
func getTextTF(ui: UITextField)->String{
    return ui.text!.lowercased()
}
    //creates lowercase String for TextViewsto save compiling time
func getTextTV(ui: UITextView)->String{
    return ui.text!.lowercased()
}

let searchText: String = self.getTextTV(ui: self.noseTextView) +
 self.getTextTF(ui: self.palateTextField) + self.getTextTF(ui: 
self.finishTextField) + 
self.getTextTF(ui: self.overallTextField) + self.getTextTF(ui: 
self.otherTextField) + 
self.getTextTF(ui: self.glassTextField) + self.getTextTF(ui: self.bottleName) +
 self.getTextTF(ui: self.distilleryTextField)



Best Answer-推荐答案


我使用此函数将可选字符串附加到单个字符串中

 func append(optionalStrings arrStrings : [String?],separator: String = " ") -> String {

        return arrStrings.flatMap{$0}.joined(separator: separator)
 }

这个函数接受一个可选字符串数组作为参数

flatMap 是一个高阶函数,其目的是消除 arrayStrings 中的 nil 值(如果存在)并为我们提供一个非可选字符串数组,我们可以将其与 连接加入(分隔符:字符串) 方法。

你可以用这个

 let arrOptionalStrings = [noseTextView?.text,
        palateTextField?.text,
        finishTextField?.text,
        overallTextField?.text,
        otherTextField?.text,
        glassTextField?.text,
        bottleName2,
        distilleryTextField?.text
    ]
let searchText: String? = append(optionalStrings: [str1,str2].map({ $0?.lowercased() }))

关于ios - swift 3 创建小写搜索字符串的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43408069/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap