Wciąż próbuję zrozumieć ten fragment kodu, który znalazłem w projekcie, nad którym pracuję, w którym facet, który go stworzył, opuścił firmę, zanim zdążyłem zapytać.Co sądzisz o tym kodzie w Objective-C, który iteruje, zachowuje liczbę i wywołuje wydanie w każdej iteracji?
Jest to kod:
-(void)releaseMySelf{
for (int i=myRetainCount; i>1; i--) {
[self release];
}
[self autorelease];
}
O ile mi wiadomo, w Objective-C modelu zarządzania pamięcią, pierwsza zasada jest taka, że obiekt, który przydziela inny obiekt, jest również odpowiedzialny, aby zwolnić go w przyszłość. Z tego powodu nie rozumiem znaczenia tego kodu. Czy jest jakieś znaczenie?
Myślę, że "Święta krowa!" – albertamg
Nic dziwnego, że opuścił firmę; Kod taki jak ten jest pewnym znakiem, że był w drodze nad jego głową, nie miał pojęcia, jak napisać aplikację i nie ma możliwości poznania właściwych sposobów. Gdybym odkrył, że w projekcie (i korzystałem z usług firmy konsultingowej, która "posprzątała" w niespokojnych projektach), natychmiast rzuciłbym czerwoną flagę i zażądał, aby każda linia kodu napisana przez tę osobę została sprawdzona . (Wygląda również na to, że utrzymuje liczbę zatrzymań oddzielnie od rzeczywistej liczby zatrzymań obiektu ... 2 czerwone flagi na tej grze.) – bbum
Myślę, że "chcę wiedzieć, kto to napisał, więc mogę być pewny, że nigdy z nim nie pracuję " –