我如何" box" iOS推送通知中的PFObject?

时间:2015-01-31 21:43:50

标签: ios parse-platform ios8 nsdictionary pfobject

我想通过推送通知直接发送PFObject。我直接在推送内发送Parse对象(例如使用自定义键“arg”)但我无法弄清楚如何从接收的数据构造真实的PFObject。收到的数据(显然)是NSDictionary,所有密钥(对象ID,创建时间,ACL等)都可用。如何将其转换为PFObject实例?

我需要一个真正的方法来构造一个包含可用数据的PFObject,所以不要带有明显的解决方案,比如“发送对象ID,然后在客户端获取该对象Parse的方法。“我已经知道这个显而易见的解决方案,但它的时间/带宽/配额效率低,因为它需要一个新的查询,而我仍然可以在该查询中获得所需的一切。

我正在寻找一种自动方式,如果有的话。我的目标是iOS 8,因此最大推送有效负载大小也不是问题(2KB对我来说已经足够了)。

更新:我已尝试[PFObject objectWithClassName:@"MyClassName" dictionary:receivedDictionaryObject];但无济于事。它只是不起作用,字段为nil,即使字典中的所有数据都直接来自Parse本身。

1 个答案:

答案 0 :(得分:0)

我认为你可以使用这样的东西

+ (PFObject *)objectFromDictionary:(NSDictionary *)dictionaryFromPush{
    PFObject *theObject = [[PFObject alloc] initWithClassName:@"MyClassName"];
    for( NSString *keys in [dictionaryFromPush allKeys] )
    {
        [theObject setObject:[dictionaryFromPush objectForKey:keys] forKey:keys];
    }
    return theObject;
}

这是一个未经测试的代码,但我非常肯定会给你和我的想法,从Push获取NSDcitionary并将其发送到此方法,以便能够将其转换为PFObject

希望这个帮助