Ответ 1
Таким образом, ответ trojanfoe является лишь отчасти правильным.
Существует огромная проблема с этим. Когда вы создаете NSValue
таким образом, вы копируете структуру cpShape
и получаете ее обратно, вы копируете ее снова. Структуры cpShape
в значительной степени используются исключительно по ссылке. Каждый раз, когда вы его копируете, вы получаете новую ссылку на новую копию, и некоторые из этих копий существуют в стеке и автоматически уничтожаются. Очень очень плохо.
Вместо этого вы хотите создать NSValue
с помощью [NSValue valueWithPointer:shape]
и вернуть этот указатель с помощью [value pointerValue]
. Таким образом NSValue сохраняет только указатель на исходный cpShape
.