действительно ли необходимо выпустить NSInteger в iPhone?

я добираюсь, эта ошибка делает кто-то знает об этом??? 08.07.2009 18:42:36 категории.778 FlashCards [1297:20b] Id=1 FlashCards (1297,0xa0690fa0) malloc: * ошибка для объекта 0x4fd78a0: освобождаемым указателем не был выделенный FlashCards (1297,0xa0690fa0) malloc: * ошибка для объекта 0x4fdc200: удвойтесь свободные *** устанавливают точку останова в malloc_error_break для отладки

5
задан Mick MacCallum 20 July 2014 в 16:49
поделиться

3 ответа

Нет, NSInteger не является объектом; это просто typedef для int (для 32-битных приложений) или long (для 64-битных приложений):

#if __LP64__
typedef long NSInteger;
#else
typedef int NSInteger;
endif
17
ответ дан 18 December 2019 в 07:56
поделиться

NSInteger - это typedef для примитивного типа, это не объект, который может реагировать на такие методы, как сохранение или освобождение. Несмотря на то, что он назван так же, как классы Какао, такие как NSNumber или NSValue, на самом деле он обрабатывается так же, как int, float и т. Д.

3
ответ дан 18 December 2019 в 07:56
поделиться

Сообщение об ошибке дает вам хороший совет о том, как отлаживать эту проблему: установите точку останова на malloc_error_break. В Xcode откройте окно точек останова (option-cmd-B). В поле с надписью «Двойной щелчок для символа» введите malloc_error_break . Повторно запустите приложение в отладчике (выберите «Отладка» в меню «Выполнить»). Отладчик остановится на месте ошибки, о которой вы сообщили. Я бы исследовал трассировку стека на этом этапе, чтобы найти, где вы дважды освободили эту память.

0
ответ дан 18 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

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