有了這個代碼:我得到一個「從枚舉類型隱式轉換」警告在Xcode iOS和我不知道爲什麼
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink
error:&error];
我得到這樣的警告:
Implicit conversion from enumeration type 'enum NSTextCheckingType' to different enumeration type 'NSTextCheckingTypes' (aka 'enum NSTextCheckingTypes')
有人可以向我解釋爲什麼我得到這個警告以及如何解決它?
我認爲這是使用具有固定基礎類型的枚舉的後果。 'NSTextCheckingTypes'過去只是'uint64_t'的一個typedef,但現在它實際上是'enum NSTextCheckingTypes:uint64_t'的一個typedef。 –
它看起來像'+ dataDetectorWithTypes:'聲明中的一個錯誤。它被宣佈採用'NSTextCheckingTypes'(帶有's'),但它看起來應該實際上採用'NSTextCheckingType'。提交一個bug,然後使用'#pragma'來禁用這行的警告,然後記下每次發佈後重新檢查這段代碼,直到你可以刪除'#pragma'。 – bames53
我不確定使用演員表是暫時消除此警告的正確方法,但它確實具有這樣的好處,即在API修復後會再次發出警告。 – bames53