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.
allocshould be invoked on a class, not on an instance.Declare an init method on SomeClass and make it look like:
Now you do:
And you can use the class. Note that you should probably read a little more on classes and objects and about memory management too (when you should release c, etc.).
If, by any chance, you have the possibility to use ARC (automatic reference counting), you won’t need to take care of releasing stuff. But that doesn’t come with Xcode 4.1, only with 4.2 which is not publicly accessible, apparently.