我得到這樣的警告以下行的代碼:的Xcode警告:格式指定型「長」但參數的類型爲「INT _Nullable」
NSLog(@"selected segment: %li", _segmentControl.selectedSegmentIndex);
酒店selectedSegmentIndex
是NSInteger
類型。
如果我改變格式%i
我得到以下警告:
Format specifies type 'int' but the argument has type 'long _Nullable'
是否有可空類型的任何新的格式說明或者這只是一個錯誤在Xcode 7?
那麼這會使警告消失,但iOS在64位上已經有一段時間了,而我不記得必須在NSLog中輸入參數。過去,將格式說明符從%i更改爲%li就足夠了。 – bbjay
@bbjay請修改我更新的答案,我在這裏粘貼了蘋果公司的代碼片段。他們也這樣做。警告總是在那裏。你可能編譯的主要是64位,所以你沒有看到這個警告。如果你已經編譯過32位,你以前就會看到它。唯一的區別是,在Xcode 7中,警告始終可見,不依賴於目標架構。 – Vive
確實。原因是架構的構建設置默認爲'ARCHS =「$(ARCHS_STANDARD)」;'Xcode 7中的值爲'armv7,arm64'。你能在你的答案中包含這些信息嗎?那麼我會很樂意接受它。 – bbjay