Backendless: удалить строку в 1-й таблице, когда связанная строка в другой таблице удалена

У меня есть две таблицы. Избранное пользователя и действие. UserFavourites имеет свойство Action (столбец). Я хочу, чтобы система удаляла строку UserFavourite, когда соответствующее действие удаляется в таблице действий. В настоящее время, когда я удаляю строку в таблице действий, которая является дочерней для UserFavourites, у UserFavourites есть пустой столбец для столбца действий, но он не удаляется, как я хочу. Большое спасибо!

РЕДАКТИРОВАТЬ: я думал загрузить связанный объект UserFavourites и удалить его следующим образом:

  ActionCreation* uf = [self.myActions objectAtIndex:self.selectedIndex.row];
    BackendlessDataQuery *query = [BackendlessDataQuery query];
            Fault *fault=nil;
            query.whereClause = [NSString stringWithFormat:@"favouriteAction.objectId =\'%@\'", [uf objectId]];
    @try{
                BackendlessCollection* relatedUserFavourites =[backendless.persistenceService load:uf relations:@[@"*"]error:&fault];

//code for delteing from backendless
            }@catch (Fault *fault) {

                NSLog(@"FAULT = %@ <%@>", fault.message, fault.detail);

            }

Но я получаю исключение:

-[ActionCreation allKeys]: unrecognized selector sent to instance 0x7fa8b0fc59c0
2015-03-11 19:57:03.157 ActionPlusChetech[1468:76482] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ActionCreation allKeys]: unrecognized selector sent to instance 0x7fa8b0fc59c0'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010c476a75 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010c10fbb7 objc_exception_throw + 45
    2   CoreFoundation                      0x000000010c47dd1d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x000000010c3d59dc ___forwarding___ + 988
    4   CoreFoundation                      0x000000010c3d5578 _CF_forwarding_prep_0 + 120
    5   ActionPlusChetech                   0x00000001098322a2 -[PersistenceService load:relations:] + 331
    6   ActionPlusChetech                   0x0000000109830ed7 -[PersistenceService load:relations:error:] + 30
    7   ActionPlusChetech                   0x00000001097f4bb7 -[MyActionsVC deleteButtonTapped] + 1767
    8   ActionPlusChetech                   0x00000001097f66be -[MyActionsVC pushMenuItem:] + 526
    9   Foundation                          0x000000010a611e3a -[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:] + 900
    10  Foundation                          0x000000010a611971 -[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:] + 132
    11  ActionPlusChetech                   0x00000001097f750d -[KxMenuItem performAction] + 157
    12  ActionPlusChetech                   0x00000001097f9940 -[KxMenuView performAction:] + 208
    13  UIKit                               0x000000010abc9a22 -[UIApplication sendAction:to:from:forEvent:] + 75
    14  UIKit                               0x000000010acd0e50 -[UIControl _sendActionsForEvents:withEvent:] + 467
    15  UIKit                               0x000000010acd021f -[UIControl touchesEnded:withEvent:] + 522
    16  UIKit                               0x000000010af77e80 _UIGestureRecognizerUpdate + 9487
    17  UIKit                               0x000000010ac0f856 -[UIWindow _sendGesturesForEvent:] + 1041
    18  UIKit                               0x000000010ac10483 -[UIWindow sendEvent:] + 667
    19  UIKit                               0x000000010abdcfb1 -[UIApplication sendEvent:] + 246
    20  UIKit                               0x000000010abea227 _UIApplicationHandleEventFromQueueEvent + 17700
    21  UIKit                               0x000000010abc523c _UIApplicationHandleEventQueue + 2066
    22  CoreFoundation                      0x000000010c3abc91 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    23  CoreFoundation                      0x000000010c3a1b5d __CFRunLoopDoSources0 + 269
    24  CoreFoundation                      0x000000010c3a1194 __CFRunLoopRun + 868
    25  CoreFoundation                      0x000000010c3a0bc6 CFRunLoopRunSpecific + 470
    26  GraphicsServices                    0x000000010ef49a58 GSEventRunModal + 161
    27  UIKit                               0x000000010abc8580 UIApplicationMain + 1282
    28  ActionPlusChetech                   0x00000001097ea9e3 main + 115
    29  libdyld.dylib                       0x000000010d106145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

Я не очень понимаю эту ошибку. Какое отношение -[ActionCreation allKeys]: имеет к этому? И нет исключений Backendless. Спасибо.


person sermilion    schedule 11.03.2015    source источник
comment
Ребята, надеюсь мне кто-нибудь поможет. Я действительно понятия не имею, что делать, и не могу найти соответствующую информацию ((   -  person sermilion    schedule 12.03.2015
comment
Поскольку мой ответ был удален, я добавляю его в качестве комментария: это дубликат сообщения на нашем форуме поддержки по адресу: support.backendless.com/topic/ Если вопрос задан на нашем форуме, он становится первоисточник ответа. Мы не размещаем ответы в нескольких местах. Наш форум поддержки является основным местом для получения поддержки Backendless.   -  person Mark Piller    schedule 12.03.2015
comment
Привет, Марк, я понимаю. Буду ждать ответа на форуме поддержки. Большое спасибо, я очень ценю вашу помощь.   -  person sermilion    schedule 12.03.2015
comment
Марк, не могли бы вы ответить на вопрос на форуме поддержки backendless? Мне очень нужно решить эту проблему. Цените свое время.   -  person sermilion    schedule 12.03.2015


Ответы (1)


Ну, я нашел обходной путь. Не совсем то, что я хотел, но это работает. Поскольку UserFavourites имеет пустой столбец после удаления связанного объекта Action, мое приложение выдает исключение, поскольку получаемое им значение равно null. Поэтому я решил, что каждый раз, когда пользователь загружает свое избранное, проверяйте, имеет ли столбец Action значение null, и если да, то отправляете запрос на удаление объекта UserFavourites. Жаль, что я не смог найти способ сделать эти два столбца зависимыми друг от друга, как SQL, например, ON UPDATE, ON DELETE и так далее. Но эй, это работает!) Надеюсь, это поможет, если кто-то столкнется с этой проблемой.

person sermilion    schedule 12.03.2015