返回NSString的C方法给出了' int'的隐式转换。到#NSString *'不允许使用ARC'错误

时间:2014-09-12 16:44:11

标签: objective-c

我有C方法:

·H

NSString *NSStringFromMKMapPoint(MKMapPoint mapPoint);

的.m

NSString *NSStringFromMKMapPoint(MKMapPoint mapPoint) {
    return [NSString stringWithFormat:@"%i,%i", (int)mapPoint.x, (int)mapPoint.y];
}

尝试使用返回值设置NSString,如下所示:

NSString *tilePointString = NSStringFromMKMapPoint(tilePoint);

给了我这个错误:

  

' int'隐式转换到#NSString *'不允许使用ARC

1 个答案:

答案 0 :(得分:1)

听起来您已经#include#import未能在您调用它的文件中声明方法的头文件。如果没有函数声明,C(并且可能是Objective-C)将默认为int作为返回类型。这可以解释你在这一行上的错误:

NSString *tilePointString = NSStringFromMKMapPoint(tilePoint);

我认为这里的编译器假定返回类型为int,然后抱怨它无法在作业中将int转换为NSString*

因此,请检查您正在调用此函数的文件,并确保已导入声明该函数的头文件。