0

Parse.com 我在我的项目中使用。在我的视图控制器中,我有一个搜索栏,它从与我需要的布尔值不同的类中获取数据。

简而言之,每个单元格都包含一个按钮,当按下该按钮就会消失,因为它会创建一个布尔值,正如我上面所说的,它位于与主查询不同的另一个类中。

为了帮助您理解:

搜索栏从所有驻留注册用户应用程序的“_USER”类中获取数据

该按钮改为在“朋友”类中创建一个布尔值

我无法连接这两个动作......

我做了一些测试,但我无法得到我想要的结果。你能解释一下我该如何解决这个问题吗?我不明白我的错误在哪里

在这里,我显示了查询和 cellForRowAtIndexPath

- (Void) { retrieveFromParse
   
 
    PFQuery retrievePets * = [ PFQuery queryWithClassName : FF_USER_CLASS ] ;
    [ retrievePets orderByAscending : FF_USER_NOMECOGNOME ] ;
    
    [ retrievePets findObjectsInBackgroundWithBlock : ^ ( NSArray * objects , NSError * error ) {
        if ( error) {
            NSLog ( @ "% @ " , objects) ;
            allObjects = [ [ NSMutableArray alloc ] init ] ;
            for ( PFObject * object in objects) {
                [ allObjects addObject : object ] ;
                
            }
            
        }
        [ self.FFTableViewFindUser reloadData ] ;
    } ] ;
}






- ( UITableViewCell * ) tableView : ( UITableView * ) tableView cellForRowAtIndexPath : ( NSIndexPath * ) indexPath {
    static NSString * CellIdentifier = @ " CellFindUser " ;
    
    
    FFCellFindUser * cell = [ self.FFTableViewFindUser dequeueReusableCellWithIdentifier : CellIdentifier ] ;
    if ( cell) {
        cell = [ [ FFCellFindUser alloc ] initWithStyle : reuseIdentifier UITableViewCellStyleDefault : CellIdentifier ] ;
    }
    
    
       if (! isFiltered ) {
        
        
        PFObject * object = [ allObjects objectAtIndex : indexPath.row ] ;
        NSString * str = [object objectForKey : FF_USER_NOMECOGNOME ] ;

        cell.FFLabelCell_NomeCognome.text = str ;
        
        
        cell.FFIMGCell_FotoProfilo.image = [ UIImage imageNamed : @ " FFIMG_Camera "] ;
        [ cell.FFIMGCell_FotoProfilo.layer setMasksToBounds : YES] ;
        [ cell.FFIMGCell_FotoProfilo.layer setCornerRadius : 22.5f ] ;
        cell.FFIMGCell_FotoProfilo.file = [object objectForKey : FF_USER_FOTOPROFILO ] ;
        [ cell.FFIMGCell_FotoProfilo loadInBackground ] ;
        
       / / Cell.FFUserButton.tag = indexPath.row ;
       / / [ Cell.FFUserButton addTarget : self action: @ selector ( FFInviaRichiestaAmicizia :)
         / / ForControlEvents : UIControlEventTouchUpInside ] ;
          
           

/ / HERE I AM RECALLING THE BOOLEAN VALUE CLASS FRIENDSHIPS
         
  if ( [ [object objectForKey : @ " RICHIESTA_IN_ATTESA "] boolValue ] ) {
               
               [ cell.FFUserButton setHidden : YES] ;
           Else { }
               [ cell.FFUserButton setHidden : NO] ;
           }

}
4

1 回答 1

3

您通过使用以错误的方式解决您的问题

if ( [ [object objectForKey : @ " RICHIESTA_IN_ATTESA "] boolValue ] )

因为这意味着用户需要知道他们是否是当前用户的朋友。这是错误的方式。您当前的用户应该有一个其当前朋友的列表(对象 ID 数组或 Parse 中的关系)。您的表视图控制器也应该可以访问当前用户。然后,您编写代码来显示/隐藏按钮:

注意:currentUserFriends是根据当前用户的关系/信息构建的用户对象 ID 数组

[cell.FFUserButton setHidden:([currentUserFriends containsObject: object.objectId])];
于 2013-10-19T18:46:59.693 回答