2014-02-12 25 views
-1

com文檔,並且我將兩個不同的tableViewCells使用PFQueryForTable方法在將解析對象放入單元格時進行排序。我這樣做,所以當對象返回一個空白字符串,我可以將其高度降低到0.不幸的是,當我這樣做時,它不會像我想要的那樣運行,空白單元格被加載到第一個單元格中,而不是那個我想減少身高。如何使用兩個單元格標識符對數據進行排序?

我的cellForRowAtIndexPath樣子:

-(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object{ 

    BOOL blank = [[[object objectForKey:@"post"] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@""]; 

    static NSString *CellIdentifier = @"Cell"; 
    static NSString *Cell2Identifier = @"Cell2"; 

    if (!blank) { 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

     if (cell == nil) { 
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
     } 

     UILabel *label; 
     label = (UILabel *)[cell viewWithTag:1]; 
     label.text = [object objectForKey:@"post"]; //[object objectForKey:@"post"]; 
     label.textAlignment = NSTextAlignmentCenter; 

     NSLog(@"posted cell"); 

     return cell;  
    } 
    else { 
     UITableViewCell *cell2 = [tableView dequeueReusableCellWithIdentifier:Cell2Identifier forIndexPath:indexPath]; 

     if (cell2 == nil) { 
      cell2 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Cell2Identifier]; 
     } 

     cell2.textLabel.text = [object objectForKey:@"post"]; 

     NSLog(@"posted cell2"); 

     return cell2; 
    } 
} 

可有人請點我在正確的方向?

謝謝。

+2

將高度設置爲0?這聽起來像一個非常糟糕的想法!你究竟在做什麼? – Fogmeister

+0

你真正想要的是不顯示空的「後」文本的對象?您應該排除在您的查詢中的那些 – Moonwalkr

+0

我接受@Fogmeister。但如果你需要,你應該實現這個( - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath)代表並返回適當的高度爲您的行... – jailani

回答

0

OK,從您的評論您當前正在創建這樣的查詢...

- (PFQuery *)theQuery 
{ 
    PFQuery *posts = [PFUser query]; 
    [posts whereKey:@"location" nearGeoPoint:self.myLocation withinKilometers:10.0]; 
    [posts includeKey:self.textKey]; 
    return posts; 
} 

因此,所有你需要做的就是添加一個where條件吧...

[posts whereKey:@"theText" notEqualTo:@""]; 

這將停止發送空白文本帖子。

+0

不幸的是,這不起作用,因爲「notEqualTo:」方法想要和id,而不是字符串。有什麼我錯過了嗎? – user3159704

+0

@ user3159704來自文檔... https://parse.com/docs/ios_guide#queries/iOS這就是'notEqualTo'的工作原理。 – Fogmeister

+1

非常感謝你,你真棒!所以對象鍵的默認值是「(undefined)」,所以「whereKey:notEqualTo:」方法無法工作。然而,您將解析文檔引入了我的注意力,我能夠弄清楚未定義對象鍵的正確方法是使用「whereKeyExists:」所以非常感謝您,請原諒我的無知。 – user3159704

相關問題