我在 DNS.h 中有这个类
@interface DNS : NSObject <NSXMLParserDelegate, NSNetServiceDelegate> {
NSMutableArray *servsPublished;
}
@property(nonatomic, retain) NSMutableArray *servsPublished;
然后在实现文件 DNS.m 中有一个方法,我释放它,我得到 exec bad access memory 错误。这是方法,它符合 NSXMLParserDelegate 协议
-(void) parserDidEndDocument:(NSXMLParser *)parser {
NSNetService *client;
for (NSDictionary *aService in servToPublish) {
client = [[NSNetService alloc] initWithDomain:@"local"
type:[aService objectForKey:@"serviceType"]
name:[aService objectForKey:@"name"]
port: [(NSNumber *)[aService objectForKey:@"port"] intValue]];
[client setDelegate: self];
[client publish];
//release this service and the client
[aService release];
//[client release];
}
//free the array of Dictionary containing the services
[servToPublish release];
}
也许第一个想法是nil,但实际上我在检查是否为nil的方法中使用它,然后释放它。
它与保留属性有关吗?谢谢。