Xcode 4.3 не предупреждает о необъявленных методах, если они существуют в текущей
@implementation
, отличная новая функция. Однако при определенных обстоятельствах это вызывает проблему при использовании моего проекта в Xcode 4.2.
Как снова включить предупреждения для необъявленных методов?
Например:
@interface MashTun : NSObject
- (void)foo;
@end
@implementation MashTun
- (void)foo {
CGRect rect = [self smallRect];
NSLog(@"My Small Rect: %@", NSStringFromCGRect(rect));
}
- (CGRect)smallRect {
return CGRectMake(0, 0, 100, 100);
}
@end
В Xcode 4.2 это не работает:
warning: instance method '-smallRect' not found (return type defaults to 'id')
error: initializing 'CGRect' (aka 'struct CGRect') with an expression of incompatible type 'id'
Я полностью понимаю предупреждение и ошибку в Xcode 4.2, так как он не позволяет искать методы в текущей области @implementation
. (Исправление простое: либо поместите метод smallRect
над методом foo
, либо объявите метод smallRect
в категории или заголовке.)
Но как мне включить предупреждение в Xcode 4.3, чтобы поймать эту ошибку, прежде чем передать ее коллегам, использующим 4.2?