麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

iOS聊天下拉刷新聊天記錄的實現

2019-11-14 18:50:20
字體:
來源:轉載
供稿:網友

1. 想法

最近在開發一個社交類app,要實現類似微信那種下拉刷新聊天記錄的功能。

一般有兩種實現方式:

1. 直接fetch一個entity的所有數據然后在內存中做filter,就是把所有聊天記錄先讀出來然后每次加載10條。

    缺點:浪費內存   優點:速度快

2. 使用PRedicate,每次訪問數據庫讀取10條數據顯示。

   缺點:速度比較慢,會有卡頓現象 優點:內存少

 

2. 實現

因為聊天記錄非常多,一次讀取太浪費內存了,決定還是每次下拉就從數據庫讀取10條顯示。

 1 -(NSArray *)queryMessageResult 2 { 3     NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:NSStringFromClass([HistoryMessageLog class])]; 4     NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"time" ascending:NO]; 5     //把排序和分組規則添加到請求中,這樣聊天記錄根據時間倒序,最新的記錄在前面 6     [request setSortDescriptors:@[sortDescriptor]]; 7      8     [request setFetchLimit:10]; 9     [request setFetchOffset:self.FetchOffset];10     11     NSError *error;12     NSArray *messageArray = [[(id)[UIapplication sharedApplication].delegate managedObjectContext] executeFetchRequest:request error:&error];13     if ([messageArray count]) {14        //每次都要更新游標15         self.FetchOffset += [messageArray count];16     }17     return messageArray;18     19 }

這樣每次都能讀取10條記錄出去,這個實現比較容易,做復雜了可以根據時間來讀取一定的條數。

 

3. 代碼

聊天的功能也做的差不多了,不過還有一些小問題,下面是截圖

 

如果有感興趣的朋友可以下載代碼去看看,然后一起交流。

github地址:https://github.com/stevenxiaoyang/Chat.git


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产成人自拍av | 欧美a视频在线观看 | 日本黄色一级电影 | 精品久久久久99 | 亚洲午夜视频 | 销魂美女一区二区 | 在线播放av网址 | 国产成人精品一区在线播放 | 91小视频在线观看免费版高清 | 久草视频在线资源 | 成人黄色短视频在线观看 | 一级免费黄色免费片 | 亚洲免费片 | 欧美一级在线免费 | 在线成人免费观看视频 | 好吊色欧美一区二区三区四区 | 黄色特级 | 久久成年人视频 | 嫩呦国产一区二区三区av | 视频一区国产 | 成人午夜视频在线观看免费 | 色日本视频 | 黄色片观看 | xnxx 日本19| bt 自拍 另类 综合 欧美 | 蜜桃精品视频 | 国产免费永久在线观看 | 亚洲第一成人av | 亚洲无线看 | 性高潮一级片 | 久久久三区 | 国产资源在线观看 | 午夜精品在线视频 | 成年人在线视频免费 | 久久亚洲线观看视频 | av免费av | 久久免费综合视频 | 久久96国产精品久久秘臀 | 国产精品久久久久久久四虎电影 | 欧美毛片 | 91av爱爱 |