Well, I'm working on a project other than ARC, but I use the Philipp Kyeck socket library , which is written using ARC. I use the method described in this to combine a non-ARC project and an ARC library.
In my ViewController file, I initialize the socket using
SockIO *chatSockIO = [[SocketIO alloc] initWithDelegate:self];
and when I need to disconnect, I call
[chatSockIO disconnect]
which causes the delegate method socketIODidDisconnect to fire.
- (void) socketIODidDisconnect:(SocketIO *)socket{ [chatSockIO release]; ==> is this call needed? }
Now my question is about the [chatSockIO release]
. Should we need to free an object that is itself defined in ARC mode, but used in a project without ARC?
Now that I tried the release, I got an exception saying
-[SocketIO retain]: message sent to deallocated instance 0x6fec370
but when I commented on this line, I get a memory leak and dealloc in my library object that doesn't call at all
Battle time !!
Forget the library I mentioned, the error in my code and the leak. What is the usual practice of using an object defined using the ARC method in a project other than ARC. Should I isolate it, or should I isolate and release it after use?
EDIT: additional information.
I run a zombie tool in an accident, and that is what he had to say. It shows a call to highlight and release functions.
# Address Category Event Type RefCt Timestamp Size Responsible Library Responsible Caller 0 0x72d5da0 SocketIO Malloc 1 00:09.700.274 64 MyProject -[MyViewController sendRequestForSocketIOPush] 1 0x72d5da0 SocketIO Retain 2 00:09.700.317 0 MyProject -[SocketIO initWithDelegate:] 2 0x72d5da0 SocketIO Release 1 00:09.700.320 0 MyProject -[SocketIO initWithDelegate:] 3 0x72d5da0 SocketIO Retain 2 00:09.700.440 0 Foundation -[NSURLConnectionInternal initWithInfo:] 4 0x72d5da0 SocketIO Retain 3 00:10.413.717 0 Foundation -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] 5 0x72d5da0 SocketIO Release 2 00:10.413.761 0 Foundation -[NSURLConnectionInternalConnection invokeForDelegate:] 6 0x72d5da0 SocketIO Retain 3 00:10.413.797 0 Foundation -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] 7 0x72d5da0 SocketIO Release 2 00:10.413.811 0 Foundation -[NSURLConnectionInternalConnection invokeForDelegate:] 8 0x72d5da0 SocketIO Retain 3 00:10.413.816 0 Foundation -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] 9 0x72d5da0 SocketIO Release 2 00:10.415.087 0 Foundation -[NSURLConnectionInternalConnection invokeForDelegate:] 10 0x72d5da0 SocketIO Retain 3 00:10.415.214 0 Foundation -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] 11 0x72d5da0 SocketIO Release 2 00:10.415.216 0 Foundation -[NSURLConnectionInternalConnection invokeForDelegate:] 12 0x72d5da0 SocketIO Release 1 00:10.415.275 0 Foundation -[NSURLConnectionInternalConnection invokeForDelegate:] 13 0x72d5da0 SocketIO Retain 2 00:10.969.432 0 GraphicsServices GSEventRunModal 14 0x72d5da0 SocketIO Release 1 00:10.969.433 0 GraphicsServices GSEventRunModal 15 0x72d5da0 SocketIO Retain 2 00:10.969.434 0 GraphicsServices GSEventRunModal 16 0x72d5da0 SocketIO Release 1 00:10.969.456 0 GraphicsServices GSEventRunModal 17 0x72d5da0 SocketIO Retain 2 00:10.969.459 0 GraphicsServices GSEventRunModal 18 0x72d5da0 SocketIO Retain 3 00:10.969.488 0 Foundation -[NSCFTimer initWithFireDate:interval:target:selector:userInfo:repeats:] 19 0x72d5da0 SocketIO Release 2 00:10.976.115 0 MyProject -[SocketIO setTimeout] 20 0x72d5da0 SocketIO Retain 3 00:10.976.125 0 Foundation -[NSCFTimer initWithFireDate:interval:target:selector:userInfo:repeats:] 21 0x72d5da0 SocketIO Release 2 00:10.976.161 0 GraphicsServices GSEventRunModal 22 0x72d5da0 SocketIO Retain 3 00:13.935.328 0 GraphicsServices GSEventRunModal 23 0x72d5da0 SocketIO Release 2 00:13.935.373 0 MyProject -[SocketIO setTimeout] 24 0x72d5da0 SocketIO Retain 3 00:13.935.399 0 Foundation -[NSCFTimer initWithFireDate:interval:target:selector:userInfo:repeats:] 25 0x72d5da0 SocketIO Release 2 00:13.935.685 0 MyProject -[SocketIO onDisconnect] 26 0x72d5da0 SocketIO Release 1 00:13.935.705 0 MyProject -[MyViewController socketIODidDisconnect:] 27 0x72d5da0 SocketIO Release 0 00:13.935.716 0 GraphicsServices GSEventRunModal 28 0x72d5da0 SocketIO Zombie -1 00:13.936.298 0 GraphicsServices GSEventRunModal