NSMutableString в методе экземпляра

#objective-c

#objective-c

Вопрос:

Я пытаюсь создать метод экземпляра, который принимает NSMutableString и изменяет отдельные символы, как показано ниже. name правильно задано в свойствах.

С объектом NSMutableString в main тот же самый метод, о котором идет речь, работает нормально, но я не могу заставить его работать в методе экземпляра. Что я делаю не так?

 -(void)changeName:(id)string{
    [self.name replaceCharactersInRange:NSMakeRange(0, 1) withString:@"x"];
}
  

Комментарии:

1. Вы понимаете, что вы вообще не используете string параметр? Какова будет цель этого параметра? self.name Изменяется ли после -changeName: вызова? Как вы думаете, почему метод не работает, т. Е. Что он должен делать и каковы результаты?

Ответ №1:

Если он не работает в методе экземпляра, скорее всего, вы не передаете указатель NSMutableString на replaceCharactersInRange . Обратите внимание, что методы Objective-C, к счастью, не работают при передаче нулевых указателей.

Используйте NSLog в вашем методе экземпляра, чтобы распечатать предполагаемую изменяемую строку до и после попытки ее изменения. Затем выясните, почему указатель на изменяемую строку так и не был установлен.