1

今日Xcode4.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

の実装では問題なくアクセスできます_fooが、のではアクセスできません。ivar宣言として入れることでこれを修正できますが、そうする必要はないと思いました。ここで何が起きてるの?TestATestBid _userInfoTestA.h

4

0 に答える 0