簡體   English   中英

如何通過Swift從Parse獲取檢索兩個對象的查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM