мы не можем добавить строку nsmutable к другой nsmutablestring

NSMutableString *mSt1 = [[NSMutableString alloc] stringWithString:asong.at];
            NSMutableString *mSt = [[NSMutableString alloc] stringWithString:[mSt1 substringWithRange: NSMakeRange (0, 2)]];
            NSMutableString *mSt2 = [[NSMutableString alloc] stringWithString:[mSt1 substringWithRange: NSMakeRange (5, 2)]];
            NSMutableString *str = [mSt appendString:mSt2];
            [songsHrs addObject:str];
            [mSt release];
            [mSt1 release];
            [mSt2 release];

получение ошибки в строке № 4 ошибка: недействительное значение не игнорируется, как должно быть

помогите мне пожалуйста...


person rockey    schedule 27.11.2010    source источник


Ответы (2)


[mSt appendString:mSt2];

Этот метод имеет возвращаемый тип void. Он изменяет NSMutableString, на который вы его вызываете (в данном случае mSt), но ничего не возвращает.

Так что не ожидайте возвращаемого значения. Удалите NSMutableString *str и просто используйте его напрямую.

[songHrs addObject:mSt];

Поскольку строка является изменяемой, она просто меняется на месте. Не нужно сохранять результат в отдельную переменную. Фактически, в этом весь смысл использования NSMutableString вместо NSString.

person Alex Wayne    schedule 27.11.2010

Помимо того, что Squeegy уже писал о добавлении, ваши строки 1, 2 и 3 кажутся также сломанными - вы должны вызывать initWithString, а не stringWithString, или использовать stringWithString, но не alloc. Вся конструкция запутана и не имеет особого смысла - но, вероятно, это для целей тестирования.

person Eiko    schedule 27.11.2010