Start a new topic

kinvey 1.24 vs. 1.27.1

I realize this questions sounds totally bizarre, but here it goes. I have an iOS project (it's a cocos2d-x game, in case that matters). It is written in a combination of C++ and objective-C. ARC is not enabled. I've been using KinveyKit 1.24, which worked fine. I recently upgraded to 1.27.1, and I haven't been able to get the app to function properly yet.



Specifically, I have a C++ class whose purpose is to read a list off of a txt file and store it in a vector. The vector is an instance variable of the C++ class. The line of code which should read data from the txt file into the vector now crashes, due to bad access.



I switched back to KinveyKit 1.24, and everything worked again. I can't imagine what the problem is, since the C++ class, vector, and txt file in question shouldn't have anything to do with Kinvey. Any help would be greatly appreciated. Thanks!

Hi Tyler,

There are definitely changes between the 1.24 and 1.27.1 libraries. It's possible that one of these changes is causing the problem. The changelog is on our timeline here: http://devcenter.kinvey.com/ios/timeline
Thanks for the message, Caroline. We had already looked over the timeline, but still haven't come up with an answer. We'll continue to keep trying to figure it out. Thanks.
I've tried using some older versions of Kinvey to figure out the first version that causes my current problem. It seems that my error begins starting with version 1.26.0. From Kinvey's changelog, I can't figure out what's different between version 1.25 and 1.26.0 that causes the problem.



I was able to avoid my issue of reading data from a txt file by moving the code outside of the KCSCustomEndpoint callback where I originally had it. I'm not sure why it didn't work in versions 1.26.0 and later, but that seemed to be the issue.



That doesn't solve my problem entirely though, since I need to schedule an NSTimer inside of a KCSCustomeEndpoint callback as well. This worked on Kinvey 1.24, but doesn't work on versions 1.26.0 and later. Other things in the callback still get executed correctly.



Does anybody have any thoughts about why scheduling an NSTimer inside of a KCSCustomEndpoint callback doesn't seem to work on the newer versions of Kinvey? Any help would be greatly appreciated.
In case anybody else runs into a similar problem, I was able to get things working by using grand central dispatch instead of NSTimers.
Hi Tyler,

We dug into this a bit more.



Our thinking is that the change in 1.26.0:



• Internal performance improvements. In particular, data store completion block callbacks should now always be called on main thread, and progress blocks on arbitrary background thread.



has a direct impact on NSTimers.



We suggest checking out

http://cocoamine.net/blog/2013/05/27/timers-and-dispatch-queues/

and

https://github.com/mikeash/MABGTimer



to see if that resolves the issue.
Login or Signup to post a comment