Я использую NSString
в своих классах и часто должен копировать строковое значение в другой класс.Но мой вопрос, как я должен инициализировать строку, например, init
?(значение - член класса, а следующие вызовы - в init)
value = [NSString stringWithCString:inStrning encoding:NSASCIIStringEncoding];
или
value = [[NSString alloc] initWithCString:inStrning encoding:NSASCIIStringEncoding];
В чем здесь разница?Освобождается ли память, выделенная при первом вызове, после завершения init?Я использую value
как assign
свойство.Было бы лучше использовать copy
?
А как насчет копирования строки, когда я передаю ее в класс с использованием какого-либо метода?Пример:
-(id) initWithObjectTypeStr:(NSString*)inTypeStr
{
...
objectTypeStr = [NSString stringWithString:inType];
//or
objectTypeStr = [[NSString alloc] initWithString:inType];
}
objectTypeStr
не определен как свойство, поэтому он имеет свойства по умолчанию (assign
Я думаю).
Каков наилучший метод для использования в этом случае?