나는 내 클래스에서 NSString
을 사용하고 있으며 문자열 값을 다른 클래스에 복사해야하는 경우가 있습니다. 하지만 내 질문에 어떻게 문자열을 초기화해야합니까 예를 들어 init
? (값은 클래스 멤버는 다음과 같은 호출은 초기화에)NSString *을 초기화하는 방법
value = [NSString stringWithCString:inStrning encoding:NSASCIIStringEncoding];
또는
value = [[NSString alloc] initWithCString:inStrning encoding:NSASCIIStringEncoding];
의 차이가 여기에 무엇입니까? 초기화가 완료되면 첫 번째 호출에 할당 된 메모리가 해제됩니까? assign
속성으로 value
을 사용하고 있습니다. copy
을 사용하는 것이 더 좋습니까?
그리고 어떤 방법을 사용하여 클래스에 전달할 때 문자열 복사는 어떻게해야합니까? 예 : 그것은 기본 속성을 가지고 있으므로
-(id) initWithObjectTypeStr:(NSString*)inTypeStr
{
...
objectTypeStr = [NSString stringWithString:inType];
//or
objectTypeStr = [[NSString alloc] initWithString:inType];
}
objectTypeStr
은 (assign
나는 생각한다) 속성으로 정의되어 있지 않습니다.
이 경우 가장 좋은 방법은 무엇입니까?
이 메모리 관리에 대한 내 블로그 게시물을 참조의 사용 후 해제하는 새를 사용하여 할당되기 때문에 당신이 개체의 소유권을
objectTypeStr = [[NSString alloc] initWithString:inType];
에 -에 http : // www.makebetterthings.com/blogs/iphone/memory-management-in-objective-c-iphone/ – Saurabh