В -parser:didStartElement:namespaceURI:qualifiedName:attributes:
вы выделяете новую строку и автоматически освобождаете ее:
currentValue = [[[NSMutableString alloc] init] autorelease];
Это означает, что эта строка будет освобождена при сливе соответствующего пула автоматического выпуска.В общем, если объект должен оставаться в живых после завершения выполнения метода, вам необходимо владеть им.В вашем случае не выпускайте его автоматически в этот момент (и не забывайте выпускать его, когда он вам больше не нужен), или задайте свойство currentValue
a retain
и используйте вместо него self.currentValue = …
.
Еще один момент, на который следует обратить внимание: вы, вероятно, захотите сделать свойство urlToServerLog
copy
вместо retain
, потому что currentValue
, будучи изменяемой строкой, будет изменяться во время выполнения синтаксического анализатора XML.Если вы используете retain
, ваше свойство urlToServerLog
также изменится, поскольку оно указывает на ту же изменяемую строку.Изменяя свойство на copy
, вы фактически создаете копию currentValue
- любые дальнейшие изменения в currentValue
не влияют на это свойство.