0

我只想允许用户删除评论,前提是他们是发布评论的用户。

我正在使用 canEditRowAtIndexPath: 方法并尝试以下方法。包含此条件后,删除不再显示。

 if (userIdNumber == aNum) {
    return YES;
}

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath   
{
    // Return YES if you want the specified item to be editable.    
    NSString *savedValue = [[NSUserDefaults standardUserDefaults]
                        stringForKey:@"userId"];

    NSNumber *userIdNumber = [userId objectAtIndex:indexPath.row];

    NSNumber  *aNum = [NSNumber numberWithInteger: [savedValue integerValue]];

    NSLog(@"savedValue is %@",savedValue);

    NSLog(@"aNum is %@",aNum);

    NSLog(@"userIdNumber is %@",userIdNumber);

    if (userIdNumber == aNum) {
        return YES;
    }
    else {        
        return NO;
    }
}
4

2 回答 2

1

正如@Hot Licks 所暗示的,对Objective-C 对象进行比较需要的不仅仅是比较它们的指针值;您需要使用以下isEqual:方法:

return [userIdNumber isEqual:aNum];

(如果对象是NSString那么你需要使用更多[NSString isEqualToString:])。

于 2013-09-12T11:09:50.167 回答
1

我认为您正在使用 == 运算符来比较两个 NSNumber。使用isEqualToNumber:如下方法比较两个数字。

if([userIdNumber isEqualToNumber:aNum]){
   返回 YES;
}else{
   返回否;
}
于 2013-09-12T11:11:50.047 回答