سؤال

I know there are lots of questions to do with this already, and I've tried to follow them but I still can't work out what the problem is.

I've enabled NSZombiesEnabled, and I get the error message:

2011-08-15 23:13:12.368 appName[3926:207] *** -[CFString release]: message sent to deallocated instance 0x4cf4570

If I type bt after the error, I get this stack trace:

#0  0x00f92657 in ___forwarding___ ()
#1  0x00f92522 in __forwarding_prep_0___ ()
#2  0x00f3804c in CFRelease ()
#3  0x00f5d18d in _CFAutoreleasePoolPop ()
#4  0x007a53eb in -[NSAutoreleasePool release] ()
#5  0x0004e3ee in _UIApplicationHandleEvent ()
#6  0x0125a992 in PurpleEventCallback ()
#7  0x01002944 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#8  0x00f62cf7 in __CFRunLoopDoSource1 ()
#9  0x00f5ff83 in __CFRunLoopRun ()
#10 0x00f5f840 in CFRunLoopRunSpecific ()
#11 0x00f5f761 in CFRunLoopRunInMode ()
#12 0x012591c4 in GSEventRunModal ()
#13 0x01259289 in GSEventRun ()
#14 0x00051c93 in UIApplicationMain ()
#15 0x00002739 in main (argc=1, argv=0xbfffefd8) at main.m:14

I'm assuming this line is explaining the problem, but I'm really not sure:

#7  0x01002944 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()

I think I might be getting lost as to when I should be releasing objects. I've tried to do [object release] at the end of every method that uses alloc, and then in the dealloc method I've released all the properties for that class.

What do I need to do?

هل كانت مفيدة؟

المحلول

There is a string in your application that you have over released. Since it is problem when the autoreleasepool is released you are accidentally releasing an autoreleased object. Here is an example of what may cause this:

NSString *autoString = [NSString stringWithFormat:@"A formatted string! %d", 0];

//use string

[autoString release];//This will cause a crash about the same place your crash is

Without any relevant code all I can do is offer that as pattern for you to look for issues in your code.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top