Я только что наткнулся на Clang / LLVM сегодня и решил попробовать.
Моя система FreeBSD8.1-Release.Системным компилятором по умолчанию является GCC4.2.1, который я использовал для компиляции своего проекта Objective-C до сих пор.
Я играю со Статическим анализатором и хотел бы знать, какустраните одно из генерируемых предупреждений.
MyClass.h
#import <objc/Object.h>
@interface MyClass: Object {
}
-(MyClass*) init;
@end
MyClass.m
#import "MyClass.h"
@implementation MyClass
-(MyClass*) init {
self = [super init];
if (self) {
// do stuff
}
return self;
}
@end
Предупреждение:
%clang --analyze MyClass.m
MyClass.m:7:9: warning: method '-init' not found (return type defaults to 'id')
self = [super init];
^~~~~~~~~~~~
1 diagnostic generated.
Я так понимаю, что анализатор не знает, как определить тип super (в данном случае Object ).Есть ли способ устранить это предупреждение (кроме как путем подавления)?Я посмотрел на кастинг super , но, похоже, это не разрешено.
Спасибо!Макс
Обновление
Спасибо Дейву и bbum за то, что они указали мне правильное направление для устранения предупреждения.Теперь я пытаюсь выяснить, почему предупреждение возникает в первую очередь.
Если у кого-то есть какие-либо идеи или предложения, я люблю их слышать.
Спасибо, Макс