我以为我在引用当前类中的任何内容时理解了self的用法.在遇到这个警告和随后的运行失败之后,我搜索了许多"定义自我"或"使用自我"的变种并且无处可去.这个问题是如何在没有警告的情况下创建对象,并了解原因.
#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
Run Code Online (Sandbox Code Playgroud)
请注意,如果我取代Foo了self,没有任何问题.我认为类名和self是等价的,但显然编译器并不这么认为.
或许解释这里的错误不仅可以解决我的问题,还可以启发我对其使用的理解self.
是否有关于正确使用自我的任何教程?我找不到任何东西,比如" self是信息的接收者",这根本没有帮助我.
objective-c ×1