I get this warning for the following line of code:
NSLog(@"selected segment: %li", _segmentControl.selectedSegmentIndex);
Format specifies type 'int' but the argument has type 'long _Nullable'
You should type:
NSLog(@"selected segment: %li", (long)_segmentControl.selectedSegmentIndex);
Because NSInteger has a different length in 32 and 64bit architecture. Previously you didn't see the warning, because probably you was compiling only against 64 bit architecture.
I'd also advise to read Apple Article, as there are new specifiers in Xcode 7 (among others
To answer your doubts from the comment, please refer to this Apple document, where they state the following:
Script action: Warns about potential problems; may generate false negatives.
Typically, in 32-bit code you use the %d specifier to format int values in functions such as printf, NSAssert, and NSLog, and in methods such as stringWithFormat:. But with NSInteger, which on 64-bit architectures is the same size as long, you need to use the %ld specifier. Unless you are building 32-bit like 64-bit, these specifiers generates compiler warnings in 32-bit mode. To avoid this problem, you can cast the values to long or unsigned long, as appropriate. For example:
NSInteger i = 34; printf("%ld\n", (long)i);