【问题标题】:iPhone OS: Is there a way to set up KVO between two ManagedObject Entities?iPhone OS:有没有办法在两个 ManagedObject 实体之间设置 KVO?
【发布时间】:2010-05-27 00:44:34
【问题描述】:

我有 2 个实体要与 KVO 链接,一个是单个 statTracker 类,用于跟踪不同的统计数据,另一个是包含成就信息的成就类。理想情况下,我想要做的是通过让成就类的实例观察 statTracker 类上的值来设置 KVO,并设置一个阈值,在该阈值处应该“触发”成就实例(在这种情况下触发意味着显示 UIAlertView 并更改成就类的属性。)

如果可能的话,我还想在成就类的实例化时设置这些关系

有点像这样:

Achievement *achievement1 = (Achievement *)[NSEntityDescription insertNewObjectForEntityForName:@"Achievement" inManagedObjectContext:[[CoreDataSingleton  sharedCoreDataSingleton] managedObjectContext]];
    [achievement1 setAchievementName:@"2 time launcher"];
    [achievement1 setAchievementDescription:@"So you've decided to come back for more eh? Here are some achievement points to get you going"];
    [achievement1 setAchievementPoints:[NSNumber numberWithInt:300];
            [achievement1 setObjectToObserve:@"statTrackerInstace"
                           propertyToObserve:@"timesLaunched" 
                           valueOfPropertToSatisfyAchievement:2]

有人知道我会如何设置吗?有没有办法通过我没有看到的关系来做到这一点?

谢谢,

尼克

【问题讨论】:

    标签: iphone core-data key-value-observing achievements


    【解决方案1】:

    NSManagedObjects 是 NSObjects,如果你用类支持它们,你可以添加任何你想要的方法。

    也就是说,您可能希望创建一个成就管理器类来管理类之间的关系并执行任何触发响应。

    【讨论】:

    • 是的,我最初就是这样开始做这件事的(使用成就跟踪器类),我正在考虑不要那样做。但也许你是对的,可能没有办法绕过它,或者至少没有一种比仅仅使用成就跟踪器更容易的方法。 --感谢您的快速响应。
    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2021-01-04
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多