2009-04-29 5 views
22

Objective-C에서 nil에 포인터를 설정해야합니까? 릴리스 후에?

NSString * string = [ [ NSString alloc ] init ];
...
[ string release ];

또는 같은 일을하고 잘못된 점은

string = nil;을 추가하는 (가장 좋은 방법이 아닌) 값 거기입니다

?

+0

nil로 설정하면 NSZombieEnabled가 쓸모 없게됩니다. 따라서 비생산적 일 수 있습니다. 나보다 지식이 많은 사람이 이것을 설명하면 좋을 것이다. – ustun

답변

28

필요는 없지만 좋은 습관입니다. 실수로 릴리스 이후에 참조 할 경우 나쁜 일이 발생할 수 있지만 Objective C에서는 아무 것도 참조하지 않는 것이 좋습니다. 무기 호에 인스턴스 변수를 설정

+0

차가움. 나는 그만큼 생각했지만, 내가 잃어버린 중대한 것이 없었는지 확인하고 싶었다. 감사. – LucasTizma

3

보다 멀티 스레드 응용 프로그램에서 더 유용 단일 스레드 다중 스레드로 항상 인스턴스 변수는 출시 것 전에 읽을 것이라는 점을 보장 할 수 없기 때문에, 하나를.

다른 근본적인 이유가없는 한 일반적으로 단일 스레드 응용 프로그램을 사용하지 않습니다.

0

Objective-C는 멋진 전처리 기가있는 C와 실제로 동일합니다.

Objective-C에서 nil에 대한 포인터를 설정해도 한 번 포인터가 가리키는 포인터에는 영향을 미치지 않습니다.

관련 문제