2011-01-08 41 views

Odpowiedz

24

Jest to relikt z dawnych czasów, w którym mieliśmy wiele "stref" do przydzielenia. W dzisiejszych czasach wszystkie aplikacje mają tylko jedną strefę, w której są przydzielane wszystkie alokacje, ale klasa NSZone nadal istnieje, a napisano o wiele za dużo kodu na +allocWithZone: jest podstawową metodą alokacji, aby dokonać zmiany.

Podsumowując, można całkowicie zignorować strukturę NSZone, a jedynym powodem, dla którego warto zadbać o numer +allocWithZone:, jest sytuacja, w której należy ją przesłonić. Podobnie z -copyWithZone:, możesz po prostu zignorować strefę. Jeśli chcesz, możesz zadzwonić pod numer +allocWithZone: przechodząc w tej samej strefie, ale nie będzie to miało żadnego znaczenia.

1

Sprawdźcie nad NSCopying Protocol Reference konkretnie copyWithZone:

+7

W mojej opinii przynajmniej dokumentacja nie wyjaśnia, co to jest w użyteczny sposób: "obszar pamięci, z którego można przydzielić nową instancję" jest w najlepszym razie niejasny. –