Ich bin verwirrt, was die richtige Art und Weise zu schreiben, benutzerdefinierte init-Methoden für youw eigene Unterklasse in Bezug auf die Speicherverwaltung, benutzerdefinierte Unterklassen und Arrays. Wenn ich Eigenschaften wie haben:
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSMutableArray *array;
@property (nonatomic, retain) SomeSubclassOfNSObject *object;
@interface SomeSubclassofNSObject
@property (nonatomic, retain) NSString *category;
Wie schreibe ich meine Init-Methode?
tun Sie das:
initWithName:(NSString *)aName object:(SomeSubclassOfNSObject *)anObject {
if (self = [super init]) {
self.name = aName; // or do you do name = aName or name = [aName copy] autorelease] or name = [NSString alloc] initWithFormat:@"%@", aName]
self.object = anObject; // do I need to make a copy of this object so they don't point to the same object?
// loop through NSMutableArray and copy the objects?
// not really sure what to do for arrays.
}
return self;
}