gpt4 book ai didi

php - 使用冗余数据解析来自 Web 服务的信息

转载 作者:行者123 更新时间:2023-11-30 00:21:07 26 4
gpt4 key购买 nike

我正在开发一个 iPhone 应用程序,它从我编写的 php Web 服务接收信息,然后在 UITextView 中显示该信息。

我正在检索的是列表中的条目。每个条目可以有多个子条目,但表中每个主条目只有 1 或 2 个“相关条目”。

我面临两个相关问题,我正在寻找一些关于如何克服这些问题的建议或最佳实践。

首先,根据大量阅读的帖子,我设计了数据库并尽我所能对其进行规范化。然而,缺点是,当我执行包含大量联接的查询时,我会得到一个包含大量冗余数据的表。当我解析信息时,这给我在客户端带来了问题。当我解析数据并显示它时,我的 UITextView 中最终出现了很多重复的条目。

其次,我认为解决方法可能是创建单独的查询(我知道这是一个很大的禁忌),并且只检索信息一次。这在理论上解决了我的问题,但又产生了一个新问题。由于我的应用程序异步检索信息,因此我单独进行的数据库调用由于明显的原因不会显示。此外,这感觉像是一种 hack,而不是解决我原来问题的优雅方法。

非常感谢任何指导。

最佳答案

方法 1:

假设您有 NSArray 包含 (1,2,3,4,5,5,5,5,3,3,3) 正如您所说,您正在以列表形式检索条目,并且您必须删除冗余,或者您只需选择不同的列表项,然后您可以简单地执行以下操作:

可以将NSArray转换为set来实现唯一数组

NSSet *set = [NSSet setWithArray:array];

NSArray *a = [set allObjects]; here a contains (1,2,3,4,5)

方法 2:

如果您有具有属性的对象列表,例如:

Person(name,age,gender) name , age , gender are properties .

并且您想要仅具有不同名称的对象,那么您可以执行以下操作:

NSArray *mainList; //this is your all entries list.
NSArray *uniqueNames = [mainList valueForKeyPath:@"@distinctUnionOfObjects.name"];

uniqueNames 是具有唯一名称的人员列表。如果您想根据年龄进行选择,那么您可以简单地用年龄替换名称,如下所示:

NSArray *mainList; //this is your all entries list.
NSArray *uniqueAges = [mainList valueForKeyPath:@"@distinctUnionOfObjects.age"];

希望这有帮助。

关于php - 使用冗余数据解析来自 Web 服务的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227533/

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