情景 =我有一个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"];
}
问题 =当我以这种方式运行代码时,它只会注销
我不认为 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"])
答案 0 :(得分:0)
@Fosco是对的。我需要检查isEqualToString:。我有点觉得自己很蠢......