繁体   English   中英

我在Xcode for iOS中得到了“枚举类型的隐式转换”警告,我不知道为什么

[英]I am getting an “Implicit conversion from enumeration type” warning in Xcode for iOS and I don't know why

使用此代码:

NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink
                                                               error:&error];

我收到这个警告:

Implicit conversion from enumeration type 'enum NSTextCheckingType' to different enumeration type 'NSTextCheckingTypes' (aka 'enum NSTextCheckingTypes')

有人可以向我解释为什么我会收到此警告以及如何解决此问题?

+dataDetectorWithTypes:声称从NSTextCheckingTypes枚举而不是NSTextCheckingType中获取值,但是通过其余的文档,它确实允许您从后一个枚举中指定单个值。 我只想添加一个演员到NSTextCheckingTypes。 您可能还想在API上提交错误

查看此方法的文档。 第一个参数必须是NSTextCheckingTypes类型。 但是您传入的值NSTextCheckingTypeLink的类型为NSTextCheckingType

您需要传入NSTextCheckingAllSystemTypesNSTextCheckingAllCustomTypesNSTextCheckingAllTypes

编辑:

在进一步审查时,虽然从参数的角度来看我所说的似乎是正确的,但该方法的其余文档声称其他与参数类型相矛盾的东西。 无论是改变了什么,这都是一个错误。 有人应该向Apple报告。

进一步编辑:

一种解决方法是使用强制转换:

NSDataDetector *detector = 
    [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeLink
    error:&error];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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