6

このコードで:

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

この警告が表示されます:

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

誰かが私にこの警告が表示される理由とその修正方法を説明できますか?

4

2 に答える 2

9

+dataDetectorWithTypes:NSTextCheckingTypeではなくNSTextCheckingTypes列挙型から値を取得すると主張しますが、そのドキュメントの残りの部分を見ると、後者の列挙型から個々の値を指定できるはずです。NSTextCheckingTypesにキャストを追加するだけです。APIにバグを報告することもできます。

于 2013-01-09T00:18:15.497 に答える
5

このメソッドのドキュメントを参照してください。最初のパラメータはタイプである必要がありますNSTextCheckingTypes。ただし、渡す値NSTextCheckingTypeLinkは、タイプNSTextCheckingTypeです。

NSTextCheckingAllSystemTypes、、、NSTextCheckingAllCustomTypesまたはのいずれかを渡す必要がありますNSTextCheckingAllTypes

編集:

さらに検討すると、パラメーターの観点からは正しいように見えますが、メソッドの残りのドキュメントでは、パラメーターの種類と矛盾する何かが主張されています。何かが変更されたか、これはバグです。誰かがこれをAppleに報告する必要があります。

さらに編集:

回避策の1つは、キャストを利用することです。

NSDataDetector *detector = 
    [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeLink
    error:&error];
于 2013-01-09T00:16:20.497 に答える