如何从数组中返回所有消息

Posted

技术标签:

【中文标题】如何从数组中返回所有消息【英文标题】:How to return all messages from array 【发布时间】:2015-04-13 23:17:28 【问题描述】:
   NSArray *mystring = [[NSArray alloc]init];
    mystring = _fetchedResultsController.fetchedObjects;
  // NSString *string = [NSString stringWithFormat:@"%@",mystring];

    _messages = [[NSMutableArray alloc]initWithArray:mystring];

    for (Message *msg in _messages) 

        [mystring lastObject];
        NSString *text = [NSString stringWithFormat:@"%@",msg.text];




    self.messages = [[NSMutableArray alloc] initWithObjects:

                     [[JSQMessage alloc] initWithSenderId:kJSQDemoAvatarIdWoz
                                        senderDisplayName:_user_email
                                                     date:[NSDate distantPast]
                                                     text:text],




                     nil];

例如,我的数组现在包含 3 条消息,然后在应用程序上我只能看到数组中的最后一条消息。我知道问题可能是我只是假设:或者我的数组声明有问题,可能是 .first 对象或 .last 对象或 .count 需要以某种方式设置或者很可能我在 [JSQMESSAGE] 对象中遗漏了一些东西,它将所有消息数组返回到应用程序中。无论哪种方式,我都是为此而来的,所以如果有人可以指导我做什么,我肯定不能打电话给[[JSQMESSAGE ALLOC] 一百万次......

我需要一些关于 NSINTEGER 的示例,或者我只需要显示所有消息,我该怎么做?还有我怎样才能看到所有的发件人消息而不仅仅是收到的消息? 总的来说,对这个不清楚的框架的一些帮助也会很棒。

我将核心数据与 fetchedResultsController 一起使用。 还有 JSQMessages 框架。

模拟器屏幕截图:

http://postimg.org/image/gkjpssbbd/

【问题讨论】:

您发布的代码有很多问题。代码和你在文中所说的表明你对ios编程的了解很差。在使用核心数据等高级概念之前,您需要学习基础知识。 不,先生,这很简单,我的知识也不是最好的,但我知道一些员工,所以让我不同意你的看法。话虽如此,我只是认为这很简单,我想我错了,而且比我想象的要复杂。 很简单。你有麻烦,因为你不知道你在做什么。您可以从学习如何格式化代码开始。 (当你清楚地理解为什么前两行是假的时,回来问一个新问题。) 上述代码中至少有 3 个错误,可能有 4 个。(由于您没有向我们展示声明,因此无法确定。) 看来你应该学习一些工作人员然后回来。 NSFetchresultcontroller 只能在没有 NSArray 的情况下工作,因此您不能分配 NSMutable 数组中的消息(它们必须是因为 JSQMessages 框架演示表明它们也必须在 JSQMessages 文档中采用 NSMutableArray 形式)。从那以后,我创建了简单的 NSArray mystring 来保存来自 NSFetchResultController 的“.fetchedobjects”数组,然后将该数组初始化为我的 _messages NSMutableArray。我可能不擅长在这里用语言解释自己,但我确实知道我在做什么先生,所以不要光顾我。 【参考方案1】:

如果我没看错的话,看起来您正在使用似乎是另一个数组的对象重新初始化您的数组。这只会将 JSQMessages 数组作为对象添加到您的 self.messages 数组中,该对象实际上包含消息。我对 JSQMessage 一无所知,但它返回给您的似乎已经是一组消息。初始化 self.messages 后,只需将 self.messages 数组设置为 JSQMessages 数组即可。

如果不是这种情况,请实际阅读该框架的文档。

【讨论】:

试了你说的还是只返回一条消息

以上是关于如何从数组中返回所有消息的主要内容,如果未能解决你的问题,请参考以下文章

未找到结果时如何从 Mongoose Find 查询返回自定义消息而不是空数组

如何从 Firestore 集合中获取所有文档并将它们返回到数组列表中? [复制]

如何从所有文档中仅返回数组的嵌套文档

如何从所有文档中仅返回数组的嵌套文档

如何从 PHP 文件加载返回数组?

如何在 PHP 中返回从 MySQL 获取的数组