[英]IOS Parse how do I retrieving objects from a query based on two classes?
[英]How to get a query retrieving two objects from Parse via Swift
我有一個解析數據庫,如圖所示。
我需要使用查詢代碼來檢索兩個對象,例如,上次創建的類型2和3的日期。
我正在嘗試下面的代碼,但不知道如何合並這兩個查詢(query2和query3)? 還是有另一種方法可以將這兩個對象作為一個表檢索?
var query2 = PFQuery(className: "stories")
query2.whereKey("Type", equalTo: 2)
query2.addDescendingOrder("createdAt")
query2.getFirstObject()
var query3 = PFQuery(className: "stories")
query3.whereKey("Type", equalTo: 3)
query3.addDescendingOrder("createdAt")
query3.getFirstObject()
我不認為您可以通過1個查詢完全完成當前的操作。 您可以將它們組合在一起,但是只能取回所有2和3類型的數組,然后自己拆分出來。
如果問題是發出兩個不同的網絡請求,則可以創建一個雲代碼函數來運行這兩個查詢,並在單個響應中返回結果。
您也可以執行此查詢
var query2 = PFQuery(className: "stories")
query2.whereKey("Type", equalTo: 2)
query2.whereKey("Type", equalTo: 3)
query2.addDescendingOrder("createdAt")
您也可以更改方法,可以發送數組進行比較和排序結果
query2.whereKey("Type", containedIn: @[2,3])
query2.addDescendingOrder("createdAt")
之后不要使用getFirstObject; 獲取所有數組並使用謂詞或其他任何方法獲得所需的結果,這也將節省一個網絡調用。
這是為了從數組中獲取2個值
NSArray *fullArray= All objects from the parse ;
NSMutableArray *selectedObjectsArray = [NSMutableArray array];
for(int i=0 ; i<fullArray.count ; i++){
if (selectedObjectsArray.count==1 && ![[[selectedObjectsArray objectAtIndex:0] objcetForKey:@"type"] isEqualToString:[[Full array objectAtIndex:i] objcetForKey:@"type"]]) {
[selectedObjectsArray addObject:[fullArray objectAtIndex]];
break ;
}else{
[selectedObjectsArray addObject:[fullArray objectAtIndex]];
}
}
在Swift中(我的swift不太好,所以在使用前仔細檢查一下swift代碼)
for object in fullArray {
if (selectedObjectsArray.count==1 && ![[selectedObjectsArray[0][@"type"] isEqualToString:fullArray[i][@"type"]) {
selectedObjectsArray[1]=[fullArray[i];
break ;
}else{
selectedObjectsArray[0]=[fullArray[i];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.