我有這個類DNS.hObjective-C的釋放
@interface DNS : NSObject <NSXMLParserDelegate, NSNetServiceDelegate> {
NSMutableArray *servsPublished;
}
@property(nonatomic, retain) NSMutableArray *servsPublished;
然後在實現文件DNS.m還有就是我釋放的方法,我也得到了EXEC壞存取存儲器錯誤。這是方法,它符合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];
}
也許首先想到的是零,但實際上我使用它的方法檢查是否是零或不是裏面,然後釋放它。
它與保留屬性有關嗎? THX。
發佈nil不會產生問題 - 顯然你可以發送任何消息給nil。你可以在你初始化的地方發佈代碼,以及你在哪裏發佈你的servsPublished變量? – Vladimir 2010-10-15 21:37:16
顯示你在哪裏發佈「it」的代碼 – 2010-10-15 21:37:51
@Robot,是的,我說過不同的東西嗎? – Vladimir 2010-10-15 21:47:54