假设我有一个ClassA类
标头:
@interface ClassA : NSObject
- (id)initWithDelegate:(id)delegate;
@end
实施:
@interface ClassA ()
{
NSObject *_delegate;
}
@end
@implementation
- (id)initWithDelegate:(id)delegate
{
self = [super init];
if( self )
{
_delegate = delegate;
}
return self;
}
@end
由于我跳过了@property定义,因此我的委托声明默认为强?所以这段代码是错误的,因为它将导致泄漏,或者我的滞后声明默认为弱?
最佳答案
您必须将该ivar限定为__weak。 ivar的默认值为强。
否则,正如您已经知道的那样,您可能要冒与代表进行保留的风险。
顺便说一句,这里的约定是'id'而不是NSObject *。