UILabel *testLbl = [[self alloc] init];
Это где началась путаница:Будет ли это работать?
Это, как правило, лучше использовать переменную, кроме себя, чтобы обратиться к экземпляру внутри метода класса :
+ (id)rectangleOfColor:(NSColor *)color {
id newInstance = [[Rectangle alloc] init]; // GOOD [newInstance setColor:color]; return [newInstance autorelease];
}
В самом деле, а не отправлять сообщение alloc классу в методе класса, часто лучше отправлять alloc в self. Таким образом, если класс является подклассом, а сообщение rectangleOfColor: получено подклассом, возвращаемый экземпляр будет тем же типом, что и подкласс (например, метод массива NSArray наследуется NSMutableArray).
+ (id)rectangleOfColor:(NSColor *)color {
id newInstance = [[self alloc] init]; // EXCELLENT [newInstance setColor:color]; return [newInstance autorelease];
}
Выберите лучшие теги! – peoro
Что вы подразумеваете под «работой»? – taskinoor
означает, есть ли разница между двумя: UILabel * testLbl = [[self alloc] init]; UILabel * testLbl = [[UILabel alloc] init]; – Prabh