ios - 查找包含特定字符串的对象的索引

标签 ios objective-c nsarray

我有一个数组 NSObject类(class)。该类包含几个属性 - 名称、地址、描述等。当用户执行搜索时,我创建了一个仅包含“名称”属性的数组。最后,我们得到了填充有“名称”(或具有正确“名称”的单个单元格)的表格 View 。

接下来,我需要为用户找到的这个特定名称显示该对象的所有其他属性。为了尽可能清楚,我想澄清一下:我有一个包含很多对象的数组,其中包含许多属性。我只有其中一个属性的值(不知道数组中的哪个对象包含该特定名称)。现在我需要以某种方式在我的数组中找到包含特定“名称”的对象。可能,我需要该对象的索引,而且很容易获得所有其他属性,附加到这个 NSObject .

我不确定我应该提供什么代码。所以,我将粘贴我的 NSObject 的标题类(class):

@interface PlaceHolder : NSObject

@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *description;
@property (nonatomic, retain) NSString *webPage;

任何建议将不胜感激,谢谢!

更新:
整个数组的 NSLog:

整个数组是 (
"\U041c\U043e\U0441\U043a\U043e\U0301\U0432\U0441\U043a\U0438\U0439 \U041a\U0440\U0435\U0301\U043c\U043b\U044c \U2014 \U0434\U0440\U0435\U0432\U043d\U0435\U0439\U0448\U0430\U044f \U0447\U0430\U0441\U0442\U044c \U041c\U043e\U0441\U043a\U0432\U044b, \U0433\U043b\U0430\U0432\U043d\U044b\U0439 \U043e\U0431\U0449\U0435\U0441\U0442\U0432\U0435\U043d\U043d\U043e-\U043f\U043e\U043b\U0438\U0442\U0438\U0447\U0435\U0441\U043a\U0438\U0439, \U0434\U0443\U0445\U043e\U0432\U043d\U043e-\U0440\U0435\U043b\U0438\U0433\U0438\U043e\U0437\U043d\U044b\U0439 \U0438 \U0438\U0441\U0442\U043e\U0440\U0438\U043a\U043e-\U0445\U0443\U0434\U043e\U0436\U0435\U0441\U0442\U0432\U0435\U043d\U043d\U044b\U0439 \U043a\U043e\U043c\U043f\U043b\U0435\U043a\U0441 \U0433\U043e\U0440\U043e\U0434\U0430, \U043e\U0444\U0438\U0446\U0438\U0430\U043b\U044c\U043d\U0430\U044f \U0440\U0435\U0437\U0438",
"\U0421\U043f\U0430\U0301\U0441\U0441\U043a\U0430\U044f \U0431\U0430\U0448\U043d\U044f (\U0440\U0430\U043d\U0435\U0435 \U2014 \U0424\U0440\U043e\U043b\U043e\U0301\U0432\U0441\U043a\U0430\U044f \U0431\U0430\U0448\U043d\U044f) \U2014 \U0432\U044b\U0445\U043e\U0434\U044f\U0449\U0430\U044f \U043d\U0430 \U041a\U0440\U0430\U0441\U043d\U0443\U044e \U043f\U043b\U043e\U0449\U0430\U0434\U044c \U043e\U0434\U043d\U0430 \U0438\U0437 20 \U0431\U0430\U0448\U0435\U043d \U041c\U043e\U0441\U043a\U043e\U0432\U0441\U043a\U043e\U0433\U043e \U041a\U0440\U0435\U043c\U043b\U044f. \U0412 \U0431\U0430\U0448\U043d\U0435 \U0440\U0430\U0441\U043f\U043e\U043b\U043e\U0436\U0435\U043d\U044b \U0433\U043b\U0430\U0432\U043d\U044b\U0435 \U0432\U043e\U0440\U043e\U0442\U0430 \U041a\U0440\U0435\U043c\U043b\U044f \U2014 \U0421\U043f\U0430\U0441\U0441\U043a\U0438",

和一百个或更多类似的行。

名称数组是:
"\U041c\U043e\U0441\U043a\U043e\U0432\U0441\U043a\U0438\U0439 \U043a\U0440\U0435\U043c\U043b\U044c",
"\U0421\U043f\U0430\U0441\U0441\U043a\U0430\U044f \U0431\U0430\U0448\U043d\U044f",
"\U0410\U0440\U0445\U0430\U043d\U0433\U0435\U043b\U044c\U0441\U043a\U0438\U0439 \U0441\U043e\U0431\U043e\U0440",
"\U0423\U0441\U043f\U0435\U043d\U0441\U043a\U0438\U0439 \U0441\U043e\U0431\U043e\U0440",
"\U0411\U043b\U0430\U0433\U043e\U0432\U0435\U0449\U0435\U043d\U0441\U043a\U0438\U0439 \U0441\U043e\U0431\U043e\U0440",
"\U041a\U043e\U043b\U043e\U043a\U043e\U043b\U044c\U043d\U044f \U0418\U0432\U0430\U043d\U0430 \U0412\U0435\U043b\U0438\U043a\U043e\U0433\U043e",

我不确定它是否有帮助,但如果您要求 NSLog数组就在那里..

最佳答案

只是不要从对象中取出名称。相反,对对象进行排序,然后将每个对象的名称显示在表格上(因此您永远不应该只有名称列表)。

从技术上讲,您可以在对象上运行搜索(迭代或谓词)以找到具有匹配名称的“一个”,但可能存在重复,并且您可能允许稍后编辑名称,因此在另一个列表中有一个副本是维护问题。您可以保留一个索引,但是当您可以直接使用原始对象列表时,您创建一个容器对象只是为了保存索引。

关于ios - 查找包含特定字符串的对象的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649442/

相关文章:

objective-c - 数组。如何实现 map 功能?

iOS 13 快捷键 : Problem with Maps action Search Local Businesses

ios - 为什么我无法在嵌套调用尝试中创建 url

iOS 7 不调用 layoutSubviews

ios - 视频播放后关闭

objective-c - 将登录 ViewController 放在 Storyboard 中的什么位置?

multidimensional-array - 如何快速创建多维数组?

iphone - 景观中的 UIRefreshControl

ios - 如何在 Swift 中实现简单的 MVC 设计模式?

ios - 如何按价格对SKProduct数组排序