Вы можете использовать
Выражение соответствия - /[0-9]{12}/
Заменить выражение - /[0-9]{4}$/
[1111 ] Заменить Char - empty
Это позволит найти все 12-значные фрагменты текста и удалить последние 4 цифры из каждого найденного соответствия.
0x5633b0
вероятно адрес рассматриваемого объекта (значение self
). Можно использовать NSLog
или printf
с %p
для печати его.
Вы не управляете своей памятью правильно - Вы звоните release
/ autorelease
на некотором объекте больше раз, чем Вы звоните retain
. Удостоверьтесь, что Вы следуете всем правилам, размеченным в Руководство по программированию управления памятью для Какао .
0x5633b0 является просто адресом ячейки памяти, в которой хранится объект. Одна вещь, которую можно попытаться сделать, состоит в том, чтобы добавить некоторый код к init
метод:
- (void) init
{
if(self == (MyClass*)0x5633b0)
NSLog(@"Allocated object at address 0x5633b0"); // put a breakpoint on this line
// do rest of init...
}
, Если у Вас есть какой-либо другой init
методы (например, initWithCoder:
, который называют для объектов, которые инстанцируют от XIB), удостоверьтесь, что поместили этот отрывок в те методы также. Поместите точку останова на NSLog
строка и затем посмотрите, когда она будет поражена. Обратите внимание, что это может несколько раз поражаться, если объект выделяется в том адресе, освобожденном, и затем другой объект, оказывается, перераспределен в том же адресе. Последний хит перед катастрофическим отказом является тем, который Вы хотите.
In the debugger, type info symbol 0x5633b0
and you'll get some indication as to what object it is. One other thing that might be helpful is backtrace
which will give you a stack trace. All in all, this blog entry has some great tips.
Когда я недавно столкнулся с подобными проблемами, у меня лучше всего сработало следующее:
В разделе Проект -> Изменить активный исполняемый файл -> вкладка Аргументы -> Раздел переменных среды я добавил и установил в ДА
следующие переменные: NSAutoreleaseFreedObjectCheckEnabled
, NSZombieEnabled
и NSDebugEnabled
.
В меню «Выполнить» я выбрал Включить защиту от ошибок .
С этими настройками отладчик дал больше подсказок о том, что не так с моим кодом.
(Я нашел эти советы здесь )
Удачи, Ори