1

私はまだiOS開発に非常に慣れていないので、ご容赦ください。

オプションを含めるために静的セルを使用するTableViewを持っています(クリックして確認してください)。セルをうまく選択できます。各セルに値 (識別子) を割り当てて、セルが選択または選択解除されたときに配列に追加/削除できるようにしたいと思います。次に、編集が完了したら、配列に格納されている参照を使用して、それぞれの CoreData 属性を更新します。

私のグーグルスキルは今日私を失敗させたので、正しい方向へのプッシュは非常に高く評価されます.

ありがとう。

4

4 に答える 4

0

私が理解しているように、行を選択/選択解除UITableViewし、テーブルから行を削除した後、DBからも削除する必要があります。

メソッドを使用できます-

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

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

         }

     }

DBから特定のレコード/行を削除するコードは次のとおりです-

-(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 に答える
0

各セルへの参照を保持する必要はありません。データ ソースは、画面に表示されているもののミラーである必要があります。以下を使用して、何を削除して追加する必要があるかを知ることができます。

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

または選択を解除すると:

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

次に、何NSIndexPathが選択/選択解除されたかを知ることができます。

于 2013-05-13T09:15:59.233 に答える