정적 NSSet을 사용하여 클래스의 모든 인스턴스에서 공유하는 일부 요소를 정의한 클래스를 생성했습니다. 당신은 내가 설정을 유지 볼 수 있듯이Cocoa는 정적 변수를 내 놓습니다.
myStaticSet = [[NSSet setWithObjects:
@"element one",
@"element two",
nil
]retain];
:
이 내가이 코드를 사용 SE는 정의합니다.나는 정말로 내가 어디서 풀 수 있는지 이해할 수 없다. 나는 dealloc
에서 그것을 공개 할 수 없다고 확신한다. 그래서 정적 변수를 공개하는 방법이 있는가?
// EDIT 정적 값을 해제하는 새로운 클래스 메서드를 추가하는 것이 좋은 해결책 일 수 있습니까?
+(void)cleanstatic{
[mystatic release];
}
내가이 클래스로 끝났다고 확신 할 때 전화 해 주시겠습니까?
고맙습니다. 제 편집물을 이용해 주시겠습니까? – MatterGoal
물론 가능 합니다만, 예를 들어 멀티 스레드 시나리오에서는 오류가 발생하기 쉽습니다. 가능하다면 인스턴스 변수로 가져 오기 위해 코드를 리팩터링하는 것이 좋습니다. 그런 다음이를 따라 처리하고 릴리스 할 수 있습니다. 변수를 해제하고자하는 뭔가가 있습니까? 많은 데이터를 보유하고 있습니까? – lbergnehr
그것은 단지 20 문자열이 걸립니다,하지만이 코드를 작성하는 올바른 방법을 찾고 있어요. 이 클래스의 모든 인스턴스에 대해 20 개의 문자열을 만드는 것은 올바른 방법이 아니므로 정적 변수를 채택하려고 생각했습니다. 그래서, 다중 쓰레드 시나리오에서이 구현은 큰 혼란이 될 것입니다. – MatterGoal