Don't use primitive C-types like int/unsigned
and instead use the Objective-C types like NSInteger/NSUInteger
.
These warnings will then disappear as the type sizes change depending on architecture.
Things get more interesting when you use printf-like functions as you will need to conditionally compile the formatting string, depending on architecture; for example:
NSInteger i = 1;
#if __LP64__
NSLog(@"i is %ld", i);
#else
NSLog(@"i is %d", i);
#endif
However, better (when the formatting statement is non-trivial):
NSInteger i = 1;
NSLog(@"i is %ld", (long)i);