0

I have two tables. UserFavourites and Action. UserFavourites has Action as its property (column). I want the system to delete UserFavourite row, when related Action is deleted in Action table. Currently, When I delete a row in Action table, that is child of UserFavourites, UserFavourites has empty column for Action column, but it is not deleted as I wish to. Thank you very much!

EDIT: I thought I'd load related UserFavourites object and delete it like this:

  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);

            }

But I get Exception:

-[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) 

I dont really understand this error. What -[ActionCreation allKeys]:has to do with taht? And there is no Backendless exception is caught. Thank you.

sermilion
  • 185
  • 1
  • 15
  • Guys, I hope someone can help me. I really have no idea what to do and cannot find any related info(( – sermilion Mar 12 '15 at 12:52
  • Since my answer was deleted, I am adding it as a comment: This is a duplicate of the post on our support forum at: http://support.backendless.com/topic/delete-row-in-1st-table-when-related-row-in-another-table-is-deleted If a question is asked in our forum, it becomes the primary source for the answer. We do not post answers in multiple places. Our support forum is the main point to obtain support for Backendless – Mark Piller Mar 12 '15 at 15:42
  • Hi Mark, I understand it. I will wait till it is answered in support forum. Thank you a lot, I really appreciate your help. – sermilion Mar 12 '15 at 15:50
  • Mark, could you please answer the question in backendless support forum? I really need to solve this problem. Appreciate your time. – sermilion Mar 12 '15 at 17:57

1 Answers1

0

Well, I found a workaround. Not exactly what I wanted, but it works. Because UserFavourites has empty column after deleting related Action object, my app throws exception because value that it gets is null. So I decided, every time user loads his favourites, check if Action column is null, and if it is - them send request to delete th UserFavourites object. It is a shame I could not figure out a way to make those two columns dependable of each other like SQL, for example ON UPDATE, ON DELETE and so on. But hey, it works!) Hope this will help if anyone meets this problem.

sermilion
  • 185
  • 1
  • 15