2015-03-11 4 views
0

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

EDIT: Я думал, что объект загружать связанные 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]: связано с taht? И нет исключения Backendless. Спасибо.

+0

Ребята, я надеюсь, что кто-то может мне помочь. Я действительно не знаю, что делать и не могу найти никакой связанной информации (( – sermilion

+0

Поскольку мой ответ был удален, я добавляю его в качестве комментария: Это дубликат сообщения на нашем форуме поддержки по адресу: http: // support.backendless.com/topic/delete-row-in-1st-table-when-related-row-in-another-table-is-deleted Если на нашем форуме задан вопрос, он станет основным источником для ответ. Мы не публикуем ответы в разных местах. Наш форум поддержки является основным моментом для получения поддержки Backendless –

+0

Привет, Марк, я понимаю. Я буду ждать, пока на него будет дан ответ в форуме поддержки. Большое вам спасибо, я действительно оцените вашу помощь. – sermilion

ответ

0

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