Start a new topic

Crash when moving iOS app into background if we call [KCSUser saveWithCompletionBlock]

I am updating user location at app startup, using [CLLocationManager startMonitoringSignificantLocationChanges] and then save it for activeUser. The problem is when app goes to background app crashes.

Code Sample:



if(location) {

[self setValue:location forAttribute:KCSEntityKeyGeolocation];

[self saveWithCompletionBlock:^(NSArray *objectsOrNil, NSError *errorOrNil) {

NSLog(@"Saved User Location");

}];

}



This is the trace:



CoreFoundation 0x2dc9ce70 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__

CoreFoundation 0x2dc10ab0 _CFXNotificationPost

Foundation 0x2e5f6ec4 -[NSNotificationCenter postNotificationName:object:userInfo:]

UIKit 0x304e2e7c -[UIApplication _handleApplicationSuspend:eventInfo:]

UIKit 0x304640c6 -[UIApplication handleEvent:withNewEvent:]

UIKit 0x30463cfc -[UIApplication sendEvent:]

UIKit 0x304c9320 _UIApplicationHandleEvent

GraphicsServices 0x3294976c _PurpleEventCallback

GraphicsServices 0x32949356 PurpleEventCallback

CoreFoundation 0x2dca5776 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__

CoreFoundation 0x2dca5712 __CFRunLoopDoSource1

CoreFoundation 0x2dca3ede __CFRunLoopRun

CoreFoundation 0x2dc0e470 CFRunLoopRunSpecific

CoreFoundation 0x2dc0e252 CFRunLoopRunInMode

GraphicsServices 0x329482ea GSEventRunModal

UIKit 0x304c3844 UIApplicationMain

Very strange behavior from saveWithCompletionBlock, current user info is replaced by another users info. I have no code to do this. The only thing I do is saving the user after updating its location. The code I posted above is call from locationManager:didUpdateLocations. That't it. If I disable this everything is fine.
I am looking into it.
This is happening when I do [KCSUser: refreshFromServer:] on viewDidLoad. When is a good time to do a refresh?
Ali, are you using a KCSUser subclass? Or how is "self" the active user object in this case?
I'm confused again, is this a save or a refresh?
I am using Categories to extend the class. It looks like save and refresh were conflicting with each other. After removing refresh from viewDidLoad I am not seeing this kind of crash anymore, but I cannot refresh now.. But I still see the strange save behaviour that replaces current user info with other users.
I still haven't been able to reproduce, but I did find some areas of improvement. Try again after the next release (probably 1.25.1 or 1.26.0).
Do you have any release date? When is a good time for saving the user class?
Hi Ali, the release is out: http://devcenter.kinvey.com/ios/downloads
Thank you
On the SDK, this has not happened so far

One thing that's odd is that you say this happens in the background, but the crashes are happening when the app is in the foreground as far as the system is concerned BK Experience

Login or Signup to post a comment