Ошибки преобразования NSMutableString

#ios #objective-c #nsstring

#iOS #objective-c #nsstring

Вопрос:

У меня есть следующий код, и я бьюсь головой о стену, пытаясь выяснить, что вызывает ошибки.

 NSMutableString *entry = (@"%@ (%@): %@",translatedHeadword,adlerNumber,meaning);
entry = [entry replaceOccurrencesOfString:@"<br/>" withString:@" " options:NSCaseInsensitiveSearch range:NSMakeRange(0, entry.length)];
  

Вторая строка выдает две ошибки: Implicit conversion of 'NSUInteger' to NSMutableString is disallowed with ARC и Incompatible integer to pointer conversion assigning to NSMutableString from NSUInteger. But translatedHeadword , adlerNumber , и meaning все NSString s . adlerNumber содержит символы, представляющие числа, но это все равно строка.

Что я делаю не так?

Ответ №1:

Синтаксис (@"%@", foo) не приводит к форматированию строки. Вам нужно использовать [NSMutableString stringWithFormat:] для форматирования строк.

Кроме того, replaceOccurrencesOfString:... возвращает количество измененных элементов и изменяет саму строку. Итак, он жалуется на назначение entry = ... , потому что правая часть — это возвращаемый NSUInteger replaceOccurencesOfString:... .