XMPPFramework - 如何向 XMPPUserCoreDataStorageObject 添加自定义属性?

Posted

技术标签:

【中文标题】XMPPFramework - 如何向 XMPPUserCoreDataStorageObject 添加自定义属性?【英文标题】:XMPPFramework - How to add custom properties to XMPPUserCoreDataStorageObject? 【发布时间】:2014-11-18 15:37:38 【问题描述】:

我已经使用 XMPPFramework 开发了一个聊天应用程序,但是我遇到了一个问题,现在我被卡住了。我使用 NSFetchedResultsController 来显示保存在我的聊天中的用户列表,但现在我必须显示额外的信息,例如性别和 placeId。 我尝试了以下方法:

在 XMPPUserCoreDataStorageObject.h 中添加属性,然后:

- (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence

XMPPUserCoreDataStorageObject *user = [self.xmppRosterStorage userForJID:[presence from]
                                                         xmppStream:self.xmppStream
                                               managedObjectContext:[self managedObjectContext_roster]];

user.venueId = [presence attributeStringValueForName:@"KEY_VENUEID"];
user.gender = [presence attributeStringValueForName:@"KEY_GENDER"];

NSError *error = nil;
[[self managedObjectContext_roster] save:&error];

但是当我尝试使用这些属性时,应用程序崩溃(无法识别的选择器)。是否可以向 XMPPUserCoreDataStorageObject 添加自定义属性?我究竟做错了什么?我在互联网上看到了很多教程,并遵循了 XMPPFramework 的演示代码,但没有找到任何关于它的内容。

提前致谢。

【问题讨论】:

【参考方案1】:

XMPPUserCoreDataStorageObject.h 是从 CoreData 模型自动生成的文件。您应该向模型添加属性,然后重新生成标题。

【讨论】:

您能否简要介绍如何从 coredata 向自动生成的文件 (XMPPUserCoreDataStorageObject) 添加属性并重新生成标题。 @vitalyster

以上是关于XMPPFramework - 如何向 XMPPUserCoreDataStorageObject 添加自定义属性?的主要内容,如果未能解决你的问题,请参考以下文章

XMPPFramework - 如何在“didReceiveIQ”中识别响应是不是是用户的联系人列表?

XMPPFramework - 消息未发送

如何启用 XMPPFramework 在控制台上打印原始 XML

如何通过 XMPPFramework 添加好友

如何使用 XMPPFramework 响应 Openfire ping 请求

如何检查用户 JID 是不是已在 XMPPFrameWork 中使用