ARC不允许将'int'隐式转换为'id'

时间:2013-08-08 18:26:02

标签: objective-c

我想知道为什么我会收到此错误:

ARC

不允许将'int'隐式转换为'id'
self.versionButton.titleLabel.font = [UIFont fontWithName:@"AdobeClean-Light" size:self.versionButton.titleLabel.font.pointSize]; <- Implicit conversion of  'int' to 'id' is disallowed with ARC

查看UIFont的头文件,我看到'fontWithName'想要一个CGFloat

+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize
{
    return [self fontWithNSFont:[NSFont fontWithName:fontName size:fontSize]];
}

查看UIFont的头文件,我看到'pointSize'返回一个CGFloat

- (CGFloat)pointSize
{
    return CTFontGetSize(_font);
}

我正在导入导入“UIFont.h”的UIKit

1 个答案:

答案 0 :(得分:2)

马丁和布莱恩很好的打电话。这是发生了什么。我们正在开发IOS应用程序。我们正在使用其他项目的共享库。其中一个项目支持IOS和OSX。他们包括了一个项目,其中包括一个名为变色龙的第三方来源。此源允许UIKit调用映射到AppKit调用。当我查看UIFont.h这个特定的.m文件所引用的内容时,它就是变色龙上的那个。哪个混合了IOS和OSX。我删除了变色龙源,因为我们的项目只是IOS,错误消失了。无论如何,谢谢你的提示。我花了一点时间才提出这个问题,试图追踪它。