这只是消息的核心数据对象:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class Account;
@interface Message : NSManagedObject
@property (nonatomic, retain) NSNumber * read;
@property (nonatomic, retain) NSDate * sentDate;
@property (nonatomic, retain) NSString * text;
@property (nonatomic, retain) NSString * receiver;
@property (nonatomic, retain) NSString * sender;
@property (nonatomic, retain) Account *account;
@end
然后这是Messages ViewController,加载消息代码:
- (void)loadMessages
messages = [[NSMutableArray alloc]initWithArray:_fetchedResultsController.fetchedObjects];
//------------------------------------------------------------------------------------------------------------------------------------------------- Demo message just demo an incoming message.
static NSString *senderId = @"2";
static NSString *senderDisplayName = @"a";
JSQMessage *message = [[JSQMessage alloc] initWithSenderId:senderId
senderDisplayName:senderDisplayName
date:[NSDate distantPast]
text:@"helloloo"];
messages = [[NSMutableArray alloc]initWithObjects:message, nil];
//------------------------------------------------------------------------------------------------------------------------------------------------- Demo message just demo an incoming message.
现在我是这个框架的新手https://github.com/jessesquires/JSQMessagesViewController,我翻遍了框架文档并没有找到我的问题的答案:
我可以使用(NSFetchedResultsController)
这个框架吗?如果是这样,我怎样才能以正确的方式使用它(NSFetchedResultsController)
并JSQMessages CollectionView DataSource
从我的核心数据中返回我的所有消息?我知道如何使用(NSFetchedResultsController)
,但不太确定如何将它与CollectionView
这个框架一起使用。似乎CollectionView
数据源/委托方法仅适用于NSmutableArray
当我使用(NSFetchedResultsController)
.
例如:
return [_fetchedResultsController.fetchedObjects objectAtIndex:indexPath.item];
对比:
return messages[indexPath.item];
当我使用_fetchedResultsController.fetchedObjects
我的应用程序崩溃。
因此,在考虑了该怎么做之后,我说好吧,如果我将我的.fetchedObjects
(NSarray)转换为我(NSmutablearray)
的消息然后我得到了堆栈,我只是不知道如何以需要帮助的正确方式做到这一点。我所需要的只是一种将我的所有消息从我的SQlite
数据库返回到我的应用程序的方法。
我还查看了 Parse 示例https://github.com/relatedcode/RealtimeChat,但我想要自己的代码,而无需向 Parse.com 付费并能够使用 Core-Data。
当我调用它时:JSQMessage
我需要一些方法来告诉它在我的获取结果控制器中返回我的所有对象*.fetechedobjects*
。