PFQueryTableViewController:如何根据对象的内容将单元格出列标识符

时间:2014-07-18 20:50:16

标签: ios uitableview parse-platform

情景 =我有一个PFQTVC,我正在使用它作为信使。当表查询对象时,有一个名为“senderID”的密钥。我想检查“senderID”是否等于当前用户的ID,如果是,则该表将出现一个单元格,该单元格在单元格的 right 侧显示当前用户的信息 - 如果等于当前用户的ID,则出现在左侧上具有其他用户信息的单元格(如在即时消息程序中)。我在cellForRowAtIndexPath

中使用此代码
-(PFTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

    MessagesTableViewCell *cell;

    NSString *userID = [PFUser currentUser][@"userID"];
    NSString *senderID = object[@"senderID"];

    NSLog(@"userID = %@", userID);
    NSLog(@"senderID = %@",senderID);

    //I believe the problem is here
    if (userID == senderID) {

        NSLog(@"CELL RIGHT");

        cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    }

    else {

        NSLog(@"CELL LEFT");

        cell = [tableView dequeueReusableCellWithIdentifier:@"Cell2"];
    }

问题 =当我以这种方式运行代码时,它只会注销

enter image description here

我不认为 if语句正在运作。但这正是我在网上的每个人都告诉我如何做到的。您可以在Debug中清楚地看到“senderID”实际上等于“userID”。但if语句一直说它是错误的并执行“else”块。

对我来说它应该仍然为“CELL RIGHT”单元格出列,因为你可以在调试中告诉我在向下滚动时有完整的不同用户ID被调用。 (见图中的“HERE”)

问题 =有没有人知道if语句是否正常工作,所以我可以根据对象的“senderID”是否等于当前用户的ID而为不同类型的单元格出列?如果有人能帮助我,我会永远爱你。

我尝试了什么 =在你们所有人开始用不同的方式评论我写同样的东西之前,以下是我试图让它发挥作用的所有方法仍然失败。

if (object[@"senderID"]==[PFUser currentUser][@"userID"])

if ([object objectForKey:@"senderID"]==[[PFUser currentUser]objectForKey:@"userID"])

1 个答案:

答案 0 :(得分:0)

@Fosco是对的。我需要检查isEqualToString:。我有点觉得自己很蠢......