2014-09-19 51 views
0

方案解析iOS版SDK:怪「不能做類型的比較查詢:(NULL)」

我一直在使用parse.com框架超過6個月,現在的一個項目。它看起來非常糟糕,充滿了錯誤,但這是我需要知道的,如果我正確地做到這一點。我正在嘗試使用PFQueryTableViewController向用戶顯示類似的用戶信息。我使用的代碼...

-(PFQuery *)queryForTable { 

    PFQuery *matchQuery = [PFUser query]; 
    [matchQuery whereKey:@"mostCommon" equalTo:[PFUser currentUser][@"mostCommon"]]; 
    [matchQuery whereKey:@"userID" notEqualTo:currentUserID]; 
    return matchQuery; 

} 

問題

當我運行這一點,並試圖將此PFQTVC壓入棧,我得到這個錯誤信息...

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot do a comparison query for type: (null)' 

這通常與沒有在數據庫中設置信息有關。我正在提供下面的圖像,以說明那裏的數據瀏覽器中確實有數據IS

enter image description here

問題

因此,如果查詢是正確的,數據是有... 那麼爲什麼應用程序崩潰

+0

「userID」是用戶表中的實際列嗎? – 2014-09-19 20:28:12

+0

是的。我在上面的代碼中添加了斷點,它在「[matchQuery whereKey:@」mostCommon「equalTo:[PFUser currentUser] [@」mostCommon「]];」之後崩潰「代碼行。出於某種原因,它只是不喜歡那樣。但我爲什麼沒有想到。 – 2014-09-19 20:37:10

+0

你可以NSLog(@「%@」,[PFUser currentUser]); – 2014-09-19 20:39:36

回答

3

您遇到的一個問題是,要訪問對象密鑰的值,您必須使用objectForKey:在您的代碼中,使用不支持Parse對象的括號表示法。

[[PFUser currentUser] objectForKey:@"mostCommon"]; 
+0

感謝您的建議。不幸的是,我只是嘗試了這一點,並沒有改變。我想我已經縮小了現在的問題。這是當我從我的設備查詢用戶時,某個鍵(「mostCommon」)在查詢中不是「顯示」。它返回用戶除了該密鑰以外的所有信息。你知道這可能是爲什麼嗎? – 2014-09-19 21:01:53

+0

如果你這樣做會發生什麼:'NSLog(@「%@」,[[PFUser currentUser] objectForKey:@「mostCommon」]);' – Dehli 2014-09-19 21:15:48

+2

因爲它變成了我必須刪除parse.com數據瀏覽器中的那一列並創建一個名爲「common」的新列,現在它工作的很好。只是一些解析故障,我想。我會給你一個檢查方向,讓我指向正確的方向。 – 2014-09-30 19:33:00