Search code examples
cocoaautomatic-ref-countingnsinvocation

NSInvocation and ARC (Automatic Reference Counting)


When trying to migrate my current code to ARC, I'm getting errors whenever I pass an NSString as an NSInvocation argument.

Example:

NSInvocation inv = ...;
NSString *one = @"Hello World!";
[inv setArgument:&one atIndex:2];

The error happens when I use the Refactor -> Convert to Objective-C ARC option from the Edit menu. The text is "NSInvocation's setArgument is not safe to be used with an object with ownership other than __unsafe_retained."

How would I get around this?


Solution

  • This might work;

    __unsafe_unretained NSString *one = @"Hello World";