简体   繁体   中英

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM