iPhone: (id) copyWithZone: (NSZone *) зона: что такое & ldquo; зона & rdquo; за?

Если b является небольшим поддиапазоном a, можно уточнить ответ Алока следующим образом:

import numpy as np
a = np.zeros( 100000, int )
b = np.array( [99999, 99997, 99999] )

blo, bhi = b.min(), b.max()
bbins = np.bincount( b - blo )
a[blo:bhi+1] += bbins

print a[blo:bhi+1]  # 1 0 2
16
задан Oliver 8 January 2011 в 00:30
поделиться

1 ответ

Это пережиток прежних времен, когда у нас было несколько «зон» для выделения. В наши дни все приложения имеют только одну зону, в которой производятся все выделения, но класс NSZone все еще существует и его слишком много. код написан так, чтобы зависеть от +allocWithZone:, являющегося основным методом выделения для внесения изменений.

Короче говоря, вы можете полностью игнорировать структуру NSZone, и единственная причина заботиться о +allocWithZone: - это необходимость переопределить ее. Аналогично -copyWithZone:, вы можете просто игнорировать зону. Если вы хотите, вы можете позвонить +allocWithZone:, проходя в той же зоне, но это не будет иметь никакого значения.

25
ответ дан Brad The App Guy 8 January 2011 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: