Четох, че е лошо да се използва self.ivar = (удобен метод) в метода 'init' на обекта, тъй като това се забърква с наследяването.
Ако обаче знаете, че няма да подкласифицирате обекта си, добре ли е да използвате присвояването на ключова дума self?
i.e. self.iVar = [Object objectConvenienceMethod];
Причината да питам е следната. Създавам нов обект със собствен метод init и в този метод изпълнявам различни първоначални присвоявания. Тъй като не използвам ключовата дума self, аз ги присвоявам директно на iVars и следователно използвам методите alloc вместо методите за удобство. т.е.
iVar = [[Object alloc] init];
Или ако използвам удобен метод, го запазвам. т.е.
iVar = [[Object convenienceMethod]retain]
Но... когато стартирам програмата си с включен инструмент за изтичане на памет, всички тези присвоявания се идентифицират като изтичане на памет.
Ако мога да използвам ключовата дума self плюс удобен метод вместо alloc-init, тогава това ще избегне проблема.
Ако все пак избера да използвам подхода alloc-init, къде трябва да освободя iVars?? Само в dealloc?
Благодаря за вашата помощ :)
Майкъл