Мне показалось, что я поняла использование себя, когда говорила о чем-либо в текущем классе.После появления этого предупреждения и последующего сбоя прогона я гуглил много вариантов «определить себя» или «использование себя» и ничего не получил.Эта проблема заключается в том, как создать объект без предупреждения и понять, почему.
#import <Cocoa/Cocoa.h>
@interface Foo : NSObject {
Foo *obj;
}
-(void)beta;
@end
#import "Foo.h"
@implementation Foo
-(void)beta{
obj = [self new]; // 'Foo' may not respond to '-new'
}
@end
Обратите внимание, что если я заменим Foo
на self
, проблем не будет.Я думал, что имя класса и self эквивалентны, но, очевидно, компилятор так не считает.
Возможно, объяснение того, что здесь не так, не только решит мою проблему, но и просветит мое пониманиеиспользования self
.
Есть ли какие-либо учебные пособия по правильному использованию себя?Я не мог найти ничего, кроме того, что «self
является получателем сообщения», что мне совсем не помогло.