1

我对 iOS 开发还是很陌生,所以请耐心等待。

我有一个 TableView 使用静态单元格来包含选项(点击查看),我可以很好地选择单元格。我想为每个单元格分配一个值(标识符),以便在选择或取消选择单元格时,我可以从数组中添加/删除它。然后,一旦编辑完成,使用存储在数组中的引用来更新各自的 CoreData 属性。

今天我的谷歌技能让我失望了,所以非常感谢朝着正确的方向前进。

谢谢。

4

4 回答 4

4

NSIndexPath是最好的工具!对于选定的单元格,它将是唯一的。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%i", indexPath.row);
    NSLog(@"%i", indexPath.section);
}

我认为你需要这个:

[yourArray objectAtIndex:indexPath.row]; 

获得参考。

于 2013-05-13T09:12:56.080 回答
0

当在方法中选择单元格时,您可以添加有关单元格的详细信息

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

并且用于在委托方法中取消选择单元格时删除详细信息

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
于 2013-05-13T09:14:06.707 回答
0

您不需要保留对每个单元格的引用。数据源应该是屏幕上显示内容的镜像。您可以使用以下方法知道应该删除的内容:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

或者当您取消选择它时:

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

然后NSIndexPath您可以知道已选择/取消选择的内容:

于 2013-05-13T09:15:59.233 回答
0

据我了解,您想要选择/取消选择行,UITableView并在删除表中的任何行之后,您希望它也应该从数据库中删除。

您可以使用该方法 -

  - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if(editingStyle==UITableViewCellEditingStyleDelete)
        {

            [code to remove object from db on particular property];     

         }

     }

现在从数据库中删除特定记录/行的代码是 -

-(void)deleteUserForId:(NSString *)user_id
{
    NSManagedObject *statusTag=[self getUserForUserid:user_id];
    NSError *error;

    [managedObjectContext deleteObject:statusTag];
    if (![managedObjectContext save:&error]) 
    {

    }

}

-(UserData*)getUserForUserid:(NSString *)user_id
{
    NSFetchRequest *request = [self getBasicRequestForEntityName:@"UserData"];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"user_id== %@",user_id];


    [request setPredicate:predicate];
    [request setReturnsObjectsAsFaults:NO];

    NSError *error = nil;
    NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];  

    UserData *userInfoObj = nil;
    if (!error && [results count] > 0)
    {

        userInfoObj = [results objectAtIndex:0];

    }

    return userInfoObj;
}
于 2013-05-13T09:41:06.993 回答