On May 18, 2011, at 1:55 PM, Bing Li wrote: > Dear all, > > I am creating an XML chars to transmit over TCP. When an XML is created, I > attempt to release some resources. However, I got some weird results. > > The XML is simple as follows. > > <?xml version="1.0" encoding="UTF-8"?> > <MessageRoot> > <PeerKey>2412432</PeerKey> > <PeerName>greatfree</PeerName> > <Password>111111</Password> > </MessageRoot> > > The code to create the above XML is as follows. It runs well. > > + (const char *) CreateSignInMessage: (NSString *)peerKey PN: (NSString > *)peerName PW:(NSString *)password > { > NSXMLElement *root = [NSXMLNode elementWithName:"MessageRoot"]; > NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] > initWithRootElement:root]; > [xmlDoc setVersion:"1.0"]; > [xmlDoc setCharacterEncoding:"utf-8"]; > > NSXMLElement *peerKeyElement = [NSXMLNode > elementWithName:"PeerKey"]; > [root addChild:peerKeyElement]; > [peerKeyElement addChild:[NSXMLNode textWithStringValue:peerKey]]; > > NSXMLElement *peerNameElement = [NSXMLNode > elementWithName:"PeerName"]; > [root addChild:peerNameElement]; > [peerNameElement addChild:[NSXMLNode textWithStringValue:peerName]]; > > NSXMLElement *passwordElement = [NSXMLNode > elementWithName:"Password"]; > [root addChild:passwordElement]; > [passwordElement addChild:[NSXMLNode textWithStringValue:password]]; > > NSData *data = [xmlDoc XMLDataWithOptions:NSXMLNodePrettyPrint]; > NSString *xmlStr = [[NSString alloc] initWithData:data > encoding:NSUTF8StringEncoding]; > const char *xmlChar = [xmlStr UTF8String]; > > [passwordElement release]; > // [peerNameElement release]; > // [peerKeyElement release]; > [root release]; > [xmlDoc release]; > [xmlStr release]; > [data release];
You don't own passwordElement, root, or data. Expect crashes when you release those. You might want to read up on the memory management guidelines: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html Best, Hank _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com