gpt4 book ai didi

ios - 根据关系属性对获取请求进行排序

转载 作者:行者123 更新时间:2023-11-29 01:34:47 24 4
gpt4 key购买 nike

假设我有两个实体; ItemLocalizedStringLocalizedString 实体有两个属性: 字符串区域设置Item 实体与称为 localizedTitlesLocalizedString 具有一对多关系。每个“区域设置”都有一个字符串实体。

现在,在我的应用程序中,我有一些上下文/设置来确定我在显示 UI 时要使用的区域设置。假设我有一个 UITableViewController 和一个 NSFetchedResultsController 来处理数据流。

我的问题是:我可以根据 LocalizedStringstring 属性对 Item 实体进行排序,其中 locale 例如是en?我可以在获取请求中执行此操作,而不是在获取所有项目之后吗?

最佳答案

当然你可以这样做,但你不必预先获取任何特定的语言环境。您的获取结果 Controller 将只获取 Item 对象,然后您可以根据需要引用正确的字符串。

实现它的一种方法是向 Item 类添加一个方便的函数,如下所示

func titleWithLocale(identifier: String) -> String? {
if let title = self.localizedTitles.filter
{ $0.locale == identifier }
.first as? LocalizableString {
return title.string
}
return nil
}

很可能您必须调整此代码以符合 Swift 的严格类型,但您明白了。

如果您需要按标题字符串排序,也许您需要一种不同的方法。如果您知道每个 Item 在各自的语言环境中都有一个本地化的标题,您可以获取带有谓词的 LocalizedTitle 实体 locale 的过滤器:

 request.predicate = NSPredicate(format: "locale = %@", "en")

显然,您可以使用常用的排序描述符按 string 排序。现在,要填充您的表格,您可以按照另一个方向的关系找到该项目。

 let title = fetchedResultsController.objectAtIndexPath(indexPath)!
let item = title.item

关于ios - 根据关系属性对获取请求进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087884/

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