2016-07-15 13 views
-1

Я новичок в объективе c. Я хочу, чтобы заменить содержимое изменчивой строки Я использую код, каккак заменить содержимое NSMutablestring в объекте c

NSMutableString *myMutableStringObj = [myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"]; 

Но он показывает мне предупреждение несравнимых типов указателей Присваивание NSMutableString * из NSString *

Любое предложение об этом. Я использую MutableString.

+0

buz stringByReplacingOccurrencesOfString возвращает NSString не NSMutableString. –

ответ

0

Он сообщает вам, что эта функция возвращает NSString *. Если вы хотите очистить это предупреждение. Просто сделайте так:

NSMutableString *myMutableStringObj = [[myMutableStringObj stringByReplacingOccurrencesOfString:@" & " withString:@"And"] mutableCopy]; 
+0

Это показывает мне одно предупреждение. –

+0

@Muju Моя ошибка, обновил мой ответ. – Lumialxk

+0

Теперь он работает нормально. –

0

Смотреть метод signeture от NSString Class.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
             withString:(NSString *)replacement 

этот метод возвращает объект NSString.

Итак, вам нужно преобразовать результат в строку mutalbe или получить результат в NSString.

+0

Или - может быть - как насчет использования метода для _mutable_ строк? – gnasher729

+0

@gnasher вы можете следить за документацией яблока. Это очень понятно и может быть поддающимся без усилий. –

-1

плз использовать этот код

NSMutableString * str1 = [NSMutableString stringWithString:@"Hello Testing"]; 
    str1 = [[str1 stringByReplacingOccurrencesOfString:@"T" withString:@"B"] mutableCopy]; 
    NSLog(@"%@",str1); 
+0

Вы полностью не понимаете, как работают изменяемые строки. Используйте «replaceOccurencesOfString». Вы создаете три объекта, когда вам нужно только создать их. – gnasher729

+0

@ gnasher729 вы можете объяснить, где я использую три объекта? –

0

Прочитайте документацию NSString и NSMutableString. Это относится не только к вам, но и к любому, кто здесь отвечает. Ответы на эту тему были абсолютно удручающими.

Существуют методы, которые могут использоваться для NSString, но также работают с NSMutableString, которые создают новую неизменяемую строку на основе предыдущей строки. Обычно методы, начинающиеся с «stringBy ...», будут создавать новую строку.

И есть методы в интерфейсе NSMutableString, которые изменяют содержимое существующей NSMutableString. Как «replaceOccurencesOfString».

Прочитайте документацию и выберите то, что подходит именно вам. Метод, начинающийся с «stringBy», равен , а не, который изменит вашу изменяемую строку, создав новую неизменяемую. К измените строку, используйте методы из интерфейса NSMutableString. К счастью, компилятор сообщает вам, когда вы используете неправильный метод.