2012-04-01 3 views
0

xcode 리펙터를 사용하여 ViewController의 이름을 변경했습니다. .h 파일에서 컨트롤러 이름을 강조 표시 한 다음 편집> 리 팩터> 이름 바꾸기를 사용했습니다. .xib 파일의 이름을 포함하여 모든 것이 올바르게 변경되었습니다. 그러나 initWithNibName으로 펜촉을로드하면 새 이름이 인식되지 않습니다. 컨트롤러의 이전 이름의 문자열 값을 제공해야합니다.xcode 리펙터를 사용하여 NIB 이름을 변경하지 않았습니다.

XML 편집기를 사용하여 .xib 파일에서 이전 이름을 검색해 보았습니다. XML 편집기를 사용하여 변경하려고했습니다. 운이 없다.

누군가가 .xib 파일의 새 파일 이름과 일치하도록 담당자 이름을 변경하는 방법을 알고 있습니까?

+0

프로젝트 정리를 시도 했습니까? – Sven

답변

1

엑스 코드 (예 initWithNibName:@"FooViewController withBundle:nil]에 대한) 리터럴 문자열을 사용 initWithNibName에 대한 호출을 변경되지 않습니다 [내가 엑스 코드 4.2을 사용하고 있습니다]. 이것은 내가 다음과 같이 코딩하는 경향이있는 이유 중 하나입니다. initWithNibName:NSStringFromClass([FooViewController class]) withBundle:nil 그래서 코드에서 리터럴 문자열을 사용하는 모든 호출을 찾습니다.

QUICK EDIT :하지만 이미 수동으로 변경했을 수도 있습니다. 이 경우 빠른 프로젝트를 제거하고 깨끗하게하십시오.

+0

NSStringFromClass를 수동으로 호출 할 필요가 없습니다. 너의 클래스와 같은 이름으로 펜촉을 적재하려면 펜촉 이름에'nil'을 사용할 수 있습니다. – Sven

+0

예,이 작업을 수행 할 수도 있지만 때로는 제대로 작동하지 않습니다 ... 이유를 모르겠 음>< – borrrden

+0

빠른 편집이 내 문제의 근원이됩니다. 문자열 리터럴을 새 펜촉 이름으로 변경하면 initWithName에 오류가 발생합니다. 다시 설치하고 아무 쓸모가 없어졌습니다. 이전 이름이 여전히 펜촉으로 사용되고 있음을 나타냅니다. 그 오래된 이름이 저장되는 곳은 신비입니다. 그러나 나는 Sven의 충고를 받아 initWithNibName의 펜촉 이름에 nil을 사용했다. 제대로 작동한다. 네가 할 수 있다는 것을 나는 몰랐다! 따라서 이전 이름은 여전히 ​​어딘가에 묻혀 있지만 코드에 표시되지 않기 때문에 걱정하지 않겠습니다. – lp1756

관련 문제