【问题标题】:Retrieving an NSManagedObject from an NSSet从 NSSet 中检索 NSManagedObject
【发布时间】:2011-02-15 15:52:32
【问题描述】:

我有两个实体,它们之间存在一对多关系。持有“许多”的实体具有预期的 NSSet 属性。我不确定如何访问 NSSet 中的特定元素。 NSSet 包含具有多个属性的对象,其中之一是 currentWeek。我想访问我的 NSSet 中具有特定 currentWeek 的对象。

我知道我可以执行 FetchRequest 来找到它,但我认为使用 NSSet 有更直接的方法。

【问题讨论】:

    标签: ios nsmanagedobject nsset


    【解决方案1】:

    你有几个选择。

    NSArray* objectsArray = [yourSet allObjects];
    

    这将使用集合中的所有对象填充 objectsArray,此时您可以枚举它们以查找所需的对象。

    你也可以使用这样的谓词:

    NSPredicate *desiredWeekPredicate = [NSPredicate predicateWithFormat:@"currentWeek == %d", currentWeekYouWant];
    NSSet *objectsWithDesiredWeek = [yourSet filteredSetUsingPredicate:predicate];
    

    (根据您存储 currentWeek 的方式,您的谓词看起来会有所不同)。如果您每个 currentWeek 只有一个对象,您可以在 objectsWithDesiredWeek 集合上调用 -anyObject 来获取您的对象。如果您可以拥有多个具有相同 currentWeek 的对象,则在 objectsWithDesiredWeek 上调用 -allObjects 方法将为您提供一个包含所有使用您所需周的对象的数组。

    【讨论】:

    • 第二个是我实际上最终做的,但我认为有了一个已经与对象关联的 NSSet,我可以以某种方式直接搜索该集合,但我猜 NSSet 不能那样工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多