GetPtrSize
- это функция из диспетчера памяти . Когда вы выделяете память с помощью NewPtr
(еще одна функция диспетчера памяти), диспетчер памяти будет отслеживать, сколько памяти вы запрашивали, чтобы вы могли извлечь это число с помощью GetPtrSize
.
Современная замена для NewPtr
- это malloc
, которая не предоставляет такой функциональности. Существует функция malloc_size
, но число, которое она возвращает, может быть округлено до некоторого приращения, поэтому оно может быть больше числа, которое вы запрашивали изначально. Вы можете видеть, как это было бы (по крайней мере, концептуально) плохо.
Единственная точная замена для GetPtrSize
- это просто отслеживать размеры буферов самостоятельно.
В качестве альтернативы вы можете заменить эти буферы объектами NSMutableData. NSMutableData инкапсулирует буфер и его размер, что позволяет легко хранить их вместе.