#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:...
.