1

今天在 Xcode 4.6 中遇到了这个问题,这让我大吃一惊。我正在使用自动合成的属性(但手动合成没有区别)。

@interface TestA : NSObject
@property (strong) id foo;
@end

#import "TestA.h"
@interface TestB : TestA
- (id)initWithFoo:(id)foo;
@end

@implementation TestB
- (id)initWithFoo:(id)foo
{
    self = [super init];
    if (self)
    {
        _foo = foo; // Xcode says _foo is not defined.
        //self.foo = foo; // This does work though.
    }
    return self;
}
@end

我可以很好地访问_fooin的实现,但不能在's 中访问。我可以通过将其作为 ivar 声明来解决此问题,但我认为我不必这样做。这里发生了什么?TestATestBid _userInfoTestA.h

4

0 回答 0