Я явно чего-то не понимаю.
Я разбираю XML-документ, поэтому у меня есть NSMutableString для добавления к одному из элементов, потому что foundCharacters обрезается и делает это по частям. Я могу заставить все это работать, но я не понимаю, почему это не работает определенным образом.
@property (copy, nonatomic) NSMutableString *currentFoundCharacter;
Вот как я объявляю свойство для ViewController.
Тогда у меня есть:
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (!currentFoundCharacter) {
currentFoundCharacter = [[NSMutableString alloc] init]; // Have to do this or new strings never append to it.
}
if ([currentAttribute compare:@"description"] == NSOrderedSame && currentAttribute.length > 1) {
[currentFoundCharacter appendString:[string copy]];
}
Вот это прямо здесь работает. Он объединит в одном элементе все, что я хочу. но если я попытаюсь использовать синтезированные методы, я получаю сообщение об изменении неизменяемого объекта, поэтому в основном заменяю все currentFoundCharacters на self.currentFoundCharacters.
Возможно, я неправильно понял, когда и зачем использовать свойства и переменные экземпляра, но вне методов инициализации, и поэтому у меня сложилось впечатление, что лучше использовать сеттеры / геттеры. В конце концов, я просто хочу убедиться, что создаю поддерживаемый код.
[NSMutableString string]
, чтобы очистить его. - person David Skrundz   schedule 22.04.2012