Kevin McFadden
Kevin McFadden

Reputation: 357

XCODE incompatible pointer type error

I am getting a casting error. My app is reading a text file from a webpage using 'stringWithContentsOfURL' method. I want to parse the individual lines into separate components. This is a snippet of the code.

  int parameterFive_1   = 0;
  parameterFive_1_range = NSMakeRange(0,10)
  lines                 = [response componentsSeparatedByString:@"\r"];

  parameterFive_1 = CFStringGetIntValue([[lines objectAtIndex:i] substringWithRange:parameterFive_1_range]);

I am getting the following error message: " Implicit conversion of an Objective-C pointer to 'CFStringRef' (aka 'const struct __CFString *') is disallowed with ARC"

I thought it might be the compiler option but changing it to the default is not making a difference. Can anyone provide any insight?

Upvotes: 0

Views: 1325

Answers (1)

Caleb
Caleb

Reputation: 124997

Just cast the NSString* to CFStringRef to satisfy ARC:

parameterFive_1 = CFStringGetIntValue((__bridge CFStringRef)[[lines objectAtIndex:i] substringWithRange:parameterFive_1_range]);

The __bridge keyword here lets ARC know that it doesn't need to transfer ownership of the string.

Upvotes: 2

Related Questions