2016-01-06 25 views
1

在我的聊天应用程序中,我为用户表使用了Parse,获取了ID,图像等。最近我添加了这个功能,并且遇到了问题。当我发送消息时,我创建了一个有关消息的信息(如时间,消息,发件人,发件人objectId等)的NSDictionary。但是,当我尝试添加与用户关联的PFFile(图像文件)时,出现错误称PFFile无法转换为JSON(PubNub消息格式)。如何添加PFFile作为消息中使用的NSDictionary的一部分,以便与JSON兼容,或者可能有其他方法。PFFile和JSON?

我不熟悉异步任务,但在我的代码中,我有一个方法- (NSDictionary *)parseMessageToDisplay:(NSDictionary *)message {},其中输入将是从PubNub收到的消息,并且它将返回一个更好的统一格式以显示在UITableView中。如果我将文件或用户的ID添加到我的字典中,我怎么能在UIImageNSData中获得我的图像,并从我的方法NSDictionary中返回。对不起,如果这篇文章看起来很长,只是试图提供大量的信息。

回答

0

感谢@danh对于这个建议,但你真的救了我。显然,Parse为所有PFFile创建一个URL,我可以将该URL(NSString *)与我的NSDictionary发送到PubNub,然后在我的- (NSDictionary *)parseMessageToDisplay:(NSDictionary *)message方法中使用[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURLString]];并从中获取数据。 YAY!没有长时间运行混淆异步任务使我的一天非常可怕!

2

为了使用parse.com,特别是PFFile,您可能需要将NSDictionary改为PFObject。一个PFFile参考可以保存为一个PFObject的属性 - 事实上这是唯一可以保存的方式

+0

对不起,如果我不清楚,但NSDictionary发送到pubnub服务器,它被序列化成JSON,或JSON然后pubnub,我真的不知道。 – Minebomber

+1

所以你想通过pubnub传输文件?我不知道这项服务。我的第一个想法是保存图像(根据我的建议在一个pfobject中引用ref),然后与远程节点共享只是pffile的URL。您在接收方的聊天界面可能会显示一个表示正在接收图像的占位符,然后它应该使用常规的http请求从url中获取并在完成后显示提取的图像。 – danh