首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索3个值

搜索3个值
EN

Stack Overflow用户
提问于 2017-01-15 05:18:49
回答 1查看 30关注 0票数 0

我正在为我的应用程序构建一个搜索功能,让您通过姓名或电子邮件搜索用户。每个用户都有3个字段:名称、电子邮件和ID。我试图找出是否有一种更有效的方法来执行以下任务:当您输入名称或电子邮件时,如果存在数据,则需要获得其他两个字段。

现在,我正在将从数据库中检索到的所有用户数据组织成3个2d数组:

代码语言:javascript
复制
var emailByName = [[String]]()     // ex: ["John Doe", "email@gmail.com"] 
var nameByEmail = [[String]]()     // ex: ["email@gmail.com", "John Doe"]
var IdByEmail = [[String]]()       // ex: ["email@gmail.com", "123456789"]

注意:可以有相同的名字,但电子邮件和ID是不同的。

输入"email@gmail.com“时,应用程序首先查看nameByEmail以获取此人的姓名,然后从IdByEmail获取ID。另一方面,如果键入名称,则搜索emailByName数组,并将结果用于搜索IdByEmail数组。

我有一种感觉,使用3种不同的数组不是很有效。有没有更好的方法来实现这个三角搜索?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-15 05:38:01

您需要具有以下3个属性的类或结构: id、name、email。然后使用数组上的谓词执行搜索。这是通往你想去的地方的最简单的路线。关于NSPredicate有很好的文档,它可以在数组上工作,这是非常棒的。

  1. 创建类或协议,然后创建具有以下3个属性的类或结构
  2. 把它们放到数组中
  3. 构造NSPredicates以支持按名称或电子邮件进行搜索

非那样做不行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41658057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档