In an ARC environment, I have the following code:
NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:delegate];
[invocation setSelector:@selector(restClient:loadedFile:contentType:eTag:)];
// Error Here!
[invocation setArgument:&self atIndex:2];
[invocation setArgument:&filename atIndex:3];
[invocation setArgument:&contentType atIndex:4];
[invocation setArgument:&eTag atIndex:5];
Setting the argument to index 2 (&self
) causes the following compiler error:
Sending *const __strong * to parameter of type void * changes retain/release properties
I have no idea how to fix this while keeping valid code. At the moment I'm just sticking in NULL
and wrapping the invoke statement in a try/catch block, but that's a less-than-ideal solution.
A similar issue, if anyone would be kind enough to address it as well:
With this line of code (from the MPOAuth library)
status = SecItemCopyMatching((__bridge CFDictionaryRef)searchDictionary, (CFTypeRef *)&attributesDictionary);
I get the following error
Cast of an indirect pointer to an Objective-C pointer to 'CFTypeRef ' (aka 'const void *') is disallowed with ARC