Свойство имеет характеристику копирования, поэтому оно создает копию того, что ему назначено, что, в свою очередь, имеет характеристику сохранения (копия, которую оно создает, имеет счет сохранения 1), поэтому не имеет значения, является ли она строкой. -литеральный или нет.
Но здесь есть немного не по теме: если вы вообще собираетесь изменять значение, почему бы не сохранить его как NSInteger или NSUInteger?
Если вы получаете NSString откуда-то еще, просто используйте метод NSString -integerValue и сохраните число.
А затем, когда вам понадобится countOfMatches
в виде строки, используйте NSNumber
, чтобы получить значение в виде строки на лету. Это также будет иметь дополнительное преимущество в получении локализованных строковых значений. Предполагая, что self.countOfMatches
теперь является NSInteger:
NSString* countOfMatchesStr = [[NSNumber numberWithInteger:self.countOfMatches] descriptionWithLocale:[NSLocale currentLocale]];
Любое хорошее приложение Cocoa или Cocoa Touch с самого начала должно быть интернационализированным, независимо от того, намереваетесь ли вы сделать его доступным на языках, отличных от исходного языка, на котором вы его пишете.
Это означает выполнение как минимум следующих действий:
всякий раз, когда вы создаете новый проект XCode, выберите каждый файл XIB, получите информацию о нем, щелкните вкладку General и в нижней части панели нажмите кнопку Make File Localizable . Это лучше сделать перед импортом проекта в систему управления версиями, поскольку он перемещает файл xib с уровня проекта в подпапку с именем XXXX.lproj, где XXXX - это код языка, на котором вы работаете.
Никогда не вставляйте строковые литералы в свой исходный код! Создайте файл .strings: создайте новый файл. Когда откроется окно шаблона, в разделе Mac выберите Resource, затем файл .strings. Назовите файл Localizable.strings и сохраните его в своем проекте. Затем обязательно следуйте инструкциям в последнем пункте, чтобы сделать его локализуемым.
для всех тех строковых литералов, которые вы ДЕЙСТВИТЕЛЬНО поместили в ваш исходный код, оберните их в вызовы NSLocalizedString(@"My Button Label", @"an optional comment, use empty string if no comment");
Я предоставлю вам больше информации о том, как форматировать содержимое файлов .strings.