if **header** file declares

```
@interface SomeClass: NSObject {
  Data* d;
}

@property (nonatomic, retain) Data* d;

```

Why is the following line in the **implementation** file giving me a warning (and `init` method does not get called?)

```
[[[self d] alloc] init];

```

The warning i get is

> 
> *Instance method '-alloc' not found (return type defaults to 'id')*
> 
> 
> 

Meanwhile, `Data` has
`- (id) init` method, that is not being called.

Please help me understand why.