Kumulos iOS 5.0 and ARC support coming in January 2012

There have been a lot of support tickets lately asking about iOS 5.0, ARC and Kumulos.

Basically, there are problems when using the Kumulos libs with iOS 5.0 when ARC is enabled.

Even when ARC is disabled using compiler flags, there are still erroneous problems like callbacks never calling back and I’ve even seen a EXC_BAD_ACCESS.

The problem is this: There is something inherently different about the threading in iOS 5 that messes up the code the Kumulos bindins use to make everything simple and seamless.

The kumulos bindings are pretty complex and I’ve written a lot of Objective-C code in my time, the “Convert to ARC” feature in XCode 4.2 completely freaked out when I laughably let it try to do the job for me.

Here’s and example of one the offending code chunks:

            NSInvocation *inv = [NSInvocation invocationWithMethodSignature:successCallbackMethodSignature];
            [inv setTarget:delegate];
            [inv setSelector:@selector(apiOperation: didCompleteWithResult:)];
            [inv setArgument:&self atIndex:2];
            [inv setArgument:&theResultsArray atIndex:3];
            [inv performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:YES];

Now regardless of the ARC issues (referencing &self isn’t kosher in an ARC environment) for some reason in iOS 5.0 the selector is never called on the main thread. Which is useless.

However the good news is I believe we have a workaround in progress and we will be releasing proper, ARC compatible bindings on the 23rd January 2012.