0

プロジェクトで使用している Parse.com 。私のView Controllerには、必要なブール値があるクラスとは異なるクラスからデータを取得する検索バーがあります。

一言で言えば、各セルにはボタンが含まれており、ボタンを押すと消えるため、上で述べたように、メインのクエリとは別のクラスにあるブール値が作成されます。

理解を助けるために:

検索バーは、すべての登録ユーザーアプリが存在するクラス「_USER」からデータをフェッチします

代わりに、ボタンはクラス「 Friends 」にブール値を作成します

2つのアクションが繋がらない…

いくつかのテストを行いましたが、希望する結果が得られません..これを修正する方法を説明していただけますか? どこが間違っているのかわからない

ここでは、クエリと 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 に答える