【问题标题】:PfQuery orQueryWithSubqueries crash app when i make run当我运行时,PfQuery 或 QueryWithSubqueries 崩溃应用程序
【发布时间】:2013-11-27 18:00:41
【问题描述】:

大家好,我正在使用 parse.com PFQuery 或 QuerywithSubqueries

到目前为止,一切都运行良好,现在我需要添加第四个查询,但是当我运行时,应用程序不断崩溃……有人知道为什么会这样吗?

- (void)  QueryForPost {
    
    PFUser CurrentGoUser * = [ PFUser currentUser ] ;
    
    PFQuery QueryForFriend * = [ PFQuery queryWithClassName : FF_AMICIZIE_CLASS ] ;
    [ QueryForFriend whereKey : FF_AMICIZIE_A_USER equalTo : CurrentGoUser ] ;
    [ QueryForFriend whereKey : FF_AMICIZIE_STATO equalTo : @ " Confirmed "];
    [ QueryForFriend includeKey : FF_AMICIZIE_DA_USER ] ;
        
    PFQuery QueryForPost * = [ PFQuery queryWithClassName : FF_POST_CLASS ] ;
    [ QueryForPost whereKey : FF_POST_FLASH_POST_BOOLEANVALUE equalTo : [ NSNumber numberWithBool : YES] ] ;
    [ QueryForPost whereKey : FF_POST_SCELTI equalTo : CurrentGoUser ] ;

    PFQuery normalPostByFriends * = [ PFQuery queryWithClassName : FF_POST_CLASS ] ;
    [ normalPostByFriends whereKey : FF_POST_FLASH_POST_BOOLEANVALUE equalTo : [ NSNumber numberWithBool : NO ]] ;
    [ normalPostByFriends whereKey : FF_POST_UTENTE matchesKey : FF_AMICIZIE_DA_USER inquery : QueryForFriend ] ;
    
    PFQuery normalPostByUser * = [ PFQuery queryWithClassName : FF_POST_CLASS ] ;
    [ normalPostByUser whereKey : FF_POST_FLASH_POST_BOOLEANVALUE equalTo : [ NSNumber numberWithBool : NO ]] ;
    [ normalPostByUser whereKey : FF_POST_UTENTE equalTo : CurrentGoUser ] ;
    
    PFQuery queryForGoPointStatus * = [ PFQuery queryWithClassName : @ " goPoint "];
    [ queryForGoPointStatus whereKey : @ " AssegnatoDa " equalTo : CurrentGoUser ] ;


    PFQuery * query = [ PFQuery orQueryWithSubqueries : @ [ QueryForPost , normalPostByFriends , normalPostByUser , queryForGoPointStatus ]] ;
    [ query includeKey : FF_POST_UTENTE ] ;
    [ includeKey query : @ " AssegnatoDa "];
    [ query OrderByDescending : FF_CREATEDAT ] ;
  
    [ query findObjectsInBackgroundWithBlock : ^ ( NSArray * results, NSError * error ) {
       
        if (! error) {
            ArrayforPost = [ [ NSMutableArray alloc] init ] ;
            for ( PFObject * object in results ) {
                [ ArrayforPost addObject : object ] ;
            }
            [ self.FFTableView reloadData ] ;
        Else { }
            NSLog ( @ " Erroreeeee :% @" , error) ;
        }
    } ] ;
   
}

【问题讨论】:

  • 给出异常、名称和堆栈跟踪的详细信息。
  • 我试图插入一个断点异常但它停在这里,我没有返回任何类型的错误更多'具体理解 PFQuery * query = [PFQuery orQueryWithSubqueries:@[QueryForPost, normalPostByFriends, normalPostByUser, queryForGoPointStatus] ];
  • 添加所有异常断点。但只需显示您在终止时获得的日志。另外,你复制粘贴你的代码是不是因为它看起来不像编译?
  • 强制断点给了我这个......'NSInvalidArgumentException',原因:'一个或查询的所有子查询都应该在同一个类上'***首先抛出调用堆栈:

标签: ios tableview parse-platform pfquery


【解决方案1】:

异常消息说明了一切:All sub queries of an or query should be on the same class。所以你只能在FF_POST_CLASSFF_AMICIZIE_CLASS 上使用谓词,但不能同时使用。由于它是 OR 谓词,因此您只需发出 2 个请求并合并结果。

【讨论】:

  • 它实际上已经翻译了这部分......那么如果有当前用户的投票,我如何识别该帖子?我也按照您的建议尝试了查询,但没有产生差异……按钮的操作始终相同。
  • 再看,其实是@ " goPoint "类名。但这也不能是一个有效的类名,因为它的开头和结尾都有空格......
  • -(BOOL)Like:(PFObject *)PostLiked { for (PFObject *Likes in UpVoteCurrentUser) { if ([[[Likes objectForKey:@"Oggetto_Votato"]objectId] isEqualToString:PostLiked.objectId] ) 我通过将数组传递给对象来解决它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 2017-10-12
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多