내가 이렇게 내 헤더 파일에 구조체를 선언했습니다구조체를 할당 해제 할 수 있습니까?
typedef struct {
NSString *department;
NSString *departmentId;
} Department;
Department currentDepartment;
이 구조체는 매우 간단한 클래스입니다. 구조체 값을 viewDidLoad에 할당합니다. viewDidLoad를 떠나기 직전에 구조체 값이 여전히있는 것을 볼 수 있습니다. 사용자가 세그먼트 컨트롤을 클릭하면 구조체 값을 다시 할당합니다. 값을 할당하기 전에 두 구조체 값이 0x0임을 확인합니다. 나는 밖으로 인쇄하는 NSZombieEnabled을해야합니까이 I 구조체 위에 마우스를 응용 프로그램이 실행되는 동안 내 중단 점 중 하나는 명중되었을 때 :
MyApp[25722:207] *** -[CFString _cfTypeID]: message sent to deallocated instance 0xfc0e90
내가 구조체의 인스턴스를 생성하거나 할당 해제 아니에요 . 어떻게 할당 해제 될 수 있습니까?
저는 동의어가 가벼운 클래스보다 구조체가 더 유용한 경우가 있습니다. 그 트릭은 그 드문 경우를 확인하는 것입니다 :) – rpetrich
@rpetrich : 개체가있는 구조체에 대해 이야기하는 경우,이 사례는 너무 드문 것처럼 보입니다. 안전하지 않은 고토에 대해 좋은 사례가 될 가능성이 더 많습니다. – Chuck
객체의 구조체는 iPhone OS의 키보드 및 자동 수정 기능의 내부 표현에 자주 사용됩니다 (예 : – rpetrich