2011-05-07 5 views
6

XCode4에서 un-fubar interface-builder를 도와주세요.인터페이스 빌더가 포함 된 프로젝트 수정 방법

인터페이스 작성기에 단추를 만들고보기 코드에 IBAction 메서드를 정의했습니다. 괜찮 았어. 그런 다음 XCode의 리팩터링/이름 바꾸기 도구를 사용하여 버튼의 액션 메서드 이름을 변경했습니다. 괜찮 았어.

그런 다음 인터페이스 빌더에서 버튼을 선택하고 삭제 키를 눌러 삭제했습니다. 프로젝트를 다시 빌드하면 버튼이 시뮬레이터에 계속 남아 있습니다. 인터페이스 빌더로 돌아 가면 버튼이 사라졌습니다. 코드의 단추에 대한 참조는 없지만 단추의 IBAction 메서드는 여전히 있습니다.

문제를 악화 시키려면 버튼의 원래 동작 메서드가 호출되는데 물론 어느 것이 선택기를 찾을 수없는 런타임 예외를 throw합니다. 원본 액션 메서드의 이름을 프로젝트에서 검색 할 때 아무 것도 발견되지 않지만 런타임에서 계속 호출하려고합니다. 나는 "깨끗한"짓을했고 재건축을했지만 기쁨은 없었습니다.

ASCII 속성 목록으로 .xib 파일을 열려고하면 데이터가 손상되었음을 알립니다. (나는 그것을 알아 낸 것입니다.)

.xib 파일을 삭제하고 새로운보기를 만드는 것 외에는이 문제를 해결할 수있는 방법이 있습니까?

바이너리를 삭제하지 않으면 "깨끗한"것은 무엇입니까?

도움 주셔서 감사합니다. > 콘텐츠 및 설정 재설정 -

+0

.xib를 텍스트 편집기에서 열면 이상한 점이 있습니까? –

+0

@Jon Reid - 텍스트 편집기에서 .xib가 정상적으로 보입니다. xib의 xml 표현에있는 객체가 Interface Builder의 그래픽 표현에있는 객체와 같았습니다. 어쨌든, Xcode는 어딘가에 오래된 참조에 매달려 있습니다. – LandedGently

+0

이것을 재현하려고 시도한 후에는 .xib 파일의 이름을 바꾸어서 발생했다고 생각합니다. 원래 질문을 게시했을 때 언급하지 않은 .xib 파일의 이름이 바뀌 었습니다. XCode "Refactor"도구를 사용하여 일부 객체의 이름을 바꾸었지만, Refactor를 사용하여 xib 파일의 이름을 바꾸는 방법을 알지 못하므로 Project Navigator에서 이름을 변경했습니다. 아마도 좋은 생각이 아닙니다. – LandedGently

답변

0

> 청소 모든 대상을 빌드 엑스 코드에가는 시도, 그것이

+0

예, 아무런 효과가 없도록 깨끗하게 시도했습니다. (BTW, XCode 4에는 Build 메뉴가없고, Clean은 Product 메뉴에 있고 Clean All은 없습니다. 모두 Clean으로 기본 설정되어 있습니다.) – LandedGently

1

시도 iOS 시뮬레이터 수정해야합니다. (시간을 절약하기 위해, Xcode는 리소스가 변경된 경우에만 실행 전에 리소스를 복사하려고하지만, 상황이 저조 해지면 ...)

+0

좋은 팁. 그게 내 후거를 일으켰다 고 생각하지 않아. 문제를 재현하려고 시도한 후에는 내 .xib 파일의 이름을 변경하여 발생했다고 생각합니다. – LandedGently

+0

이것은 꽤 오래되었지만 여전히 일어나는 것 같습니다. XIB를 사용하여 단추, 설정 대상, 텍스트 등을 변경하지 않았습니다. 시뮬레이터에서 앱을 삭제하면 도움이되었습니다. – Swissdude

1

클린이 작동하지 않습니다. 내 경험상, Xcode는 타임 스탬프와 상관없이 "컴파일 된 .xib"의 캐시를 유지합니다 (동일한 이름을 가진 xib를 전환 해보십시오). 내 수정은 새로 고쳐야하는 각보기를 수정하는 것이 었습니다. 매우 실망 스럽지만 작동합니다.

관련 문제