2014-01-29 96 views
0

我將用戶聊天消息存儲在自定義表格中。我希望檢索兩個用戶之間的消息。現在我使用下面的代碼正在檢索存儲在自定義表格quickblox中的聊天消息

NSNumber *user_id, *user2_id; 
... 
//chatMessages = [dict valueForKey:@"items"]; 
NSMutableDictionary *getRequest = [NSMutableDictionary dictionary]; 
[getRequest setObject:@"created_at" forKey:@"sort_asc"]; 
[getRequest setObject:[NSArray arrayWithObjects:user_id,user2_id, nil] forKey:@"user_id[in]"]; 
[getRequest setObject:[NSArray arrayWithObjects:user2_id,user_id, nil] forKey:@"receiver_id[in]"]; 

[QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self]; 

但這會檢索一些奇怪的結果。在SQL我會嘗試

WHERE (user_id='firstUser' AND receiver_id='anotherUser') or (user_id='anotherUser' AND receiver_id='firstUser') 

但我不明白我怎麼能問QuickBlox同樣的事情。

回答

1

你,你可以嘗試下調用getRequest:

NSMutableDictionary *getRequest = [NSMutableDictionary dictionary]; 
[getRequest setObject:@"created_at" forKey:@"sort_asc"]; 
NSArray *users = @[@(2000), @(1992)]; 
[getRequest setObject:users forKey:@"receiver[in]"]; 
[getRequest setObject:users forKey:@"sender[in]"]; 
[QBCustomObjects objectsWithClassName:@"Chat" extendedRequest:getRequest delegate:self]; 

在這種情況下,我得到用戶之間的所有郵件ID爲2000年和1992年

UPD:現在看來是正確的。 (嘗試在getRequest中傳遞相同用戶的ID數組)

+0

這導致** getRequest **帶有以下內容: '{ 「receiver_id [or]」= 797975; 「sort_asc」=「created_at」; 「user_id [or]」= 797975; }'並且查詢返回由用戶797975發送或由他接收的所有消息。 – yakki

+0

對不起,我重寫字典鍵和搜索操作符時出錯。更新回答 – frankWhite

+0

這正是我從一開始寫的東西。它正在工作。似乎存儲在聊天表中的數據存在一些問題。謝謝您的回答) – yakki