3

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

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

4

1 回答 1

2

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

于 2013-08-09T15:09:05.600 回答