이 경고는 Xcode 6.1에서 발생합니다. 누구든지이 경고의 의미와 그 결과는 어떻습니까? 많은 감사합니다!
아래는 소스 코드에서 경고가 열린 스크린 샷입니다. "
경고를 유발하는 제약 조건을 찾는 방법은 무엇입니까? Xcode는 어떤 제약이 문제인지 알려주지 않습니다.
이 경고는 Xcode 6.1에서 발생합니다. 누구든지이 경고의 의미와 그 결과는 어떻습니까? 많은 감사합니다!
아래는 소스 코드에서 경고가 열린 스크린 샷입니다. "
경고를 유발하는 제약 조건을 찾는 방법은 무엇입니까? Xcode는 어떤 제약이 문제인지 알려주지 않습니다.
답변:
이 경고는 성가 시며 Xcode 6.1.1부터 발생합니다. 주요 문제는 경고를 클릭하여 참조 구속 조건을 쉽게 찾을 수 없다는 것입니다. 나는 이것이 버그라고 생각하고 조만간 수정 될 것입니다.
그러나 그 동안이 작은 해결 방법을 사용할 수 있습니다.
Reveal in Log
😨... snip ...
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Dlb-cb-nWC: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:6Ze-mO-v5N: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:9av-xw-u1o: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:RPt-Uf-vaZ: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Rnc-4M-7jV: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:epJ-D9-KEF: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:4HC-Gu-01w: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
... snip ...
2016 년 5 월 Xcode의 경우 Xcode를 종료했다가 다시 시작 하여이 경고를 지우는 경우가 있습니다.
혼란스럽게도 관련이없는 문제 (Apple 버그이거나 오류 언어가 잘못 사용 된 것으로 나타남)로 인해 동일한 오류가 발생할 수 있습니다. IBInspectable
항목 이 있고 Swift 파일에서 이름이 바뀌면 Xcode는 이전 이름의 UserDefinedRuntimeAttributes를 삭제 하지 않습니다 . "Identity Inspector"(오른쪽 패널의 항목 3)를 클릭하고 더 이상 항목을 삭제하십시오.
스토리 보드에서보기를 비활성화했지만 해당보기를 기반으로 구속 조건을 비활성화하지 않은 경우이 메시지가 트리거됩니다.
예를 들어, 버튼을 비활성화했지만 여전히 해당 버튼에 연결된 구속 조건이 있습니다. 높이나 너비와 같은 고유 구속 조건이거나 다른 뷰로부터의 거리와 같은 상대 구속 조건 일 수 있습니다.
뷰를 참조하는 각 구속 조건을 해제해야하며 수동으로 수행해야합니다. Xcode는 여기에서 지나치게 보수적이며 당신을 위해하지 않을 것입니다.
이 솔루션은 저에게 효과적입니다.
Xcode 5에서 개발 한 프로젝트에서 Xcode 6으로 여러 항목을 복사하고 Xcode 6의 스토리 보드는 여러 레이아웃을 지원하므로 모든 제약 조건에 따라 현재 구성에 설치해야합니다.
예를 들어, 다음과 같이 설정해야하는 구속 조건에 대해 "Compact Width | Regular Height"를 사용하고 있습니다.
프로젝트에서 수백 가지 제약 조건을 모두 확인하고 설정하고 정리하고 빌드하면 경고가 사라집니다.
Installed
뷰 객체 속성에 성가신 확인란 도 있습니다 . 따라서 표시되고 있다고 생각되는보기 객체 에 올바른 확인란이 선택되어 있는지 확인하십시오. 에 일부 개체가 표시되지 않는다는 경고가 표시됩니다 current configuration
.
이 오류가 어떻게 발생했는지 내 사례를 추가하고 싶었습니다. 제 경우에는 "Cmd + Backspace"로 텍스트 필드를 삭제하고 싶었습니다. Scene-Builder Tree-View에서 직접 수행했습니다.
스누즈 필드가 회색으로 표시됩니다.
그래서 그것은 나를 위해 쉽게 발견되었습니다. 단순히 다음을 선택하여 필드를 실제로 삭제할 수 있습니다.
메뉴에서 편집-삭제
놀랍게도-실제로 필드를 삭제합니다 (제약 조건 포함). 어쩌면 이것은 누군가이 성가신 경고의 원인을 쉽게 찾는 데 도움이 될 것입니다 ...
확장 설명
다른 답변에는 아무런 문제가 없습니다. 원래 경고 의 문구 에 주의를 기울이고 워크 플로우에 나타날 수있는 몇 가지 사용 사례를 식별하고 싶었 습니다.
현재 구성에서 구속 조건 참조 항목이 해제되었습니다.
하나 이상의 제약 조건에서 참조되는 일부 항목 (일반적으로 일반적으로 표시되는 컨트롤 또는 사용자 지정보기)이 해제되어 있거나 비활성화되어 있거나 "설치된"확인란이 선택되어 있지 않음을 의미합니다. 예를 들어 스토리 보드에서 컨트롤 또는 뷰를 메인 뷰 외부로 이동하기로 결정한 경우 (또는 크기 클래스에서 흥미로운 작업을 수행 할 때 가끔 표시 될 수 있음) 컨트롤에 제약 조건이있는 경우이 경고가 표시 될 수 있습니다 .
권장 솔루션과 함께 :
현재 구성에서이 제한 조건을 끄십시오.
해결해야 할 두 가지 접근법
문서 개요
시각적으로 스토리 보드에서 문서 개요를 열고 기본보기 외부에있는 제어 /보기를 참조하는 회색으로 표시된 제약 조건을 찾을 수 있습니다 (개요를 넓히고 제약 조건을 클릭하고 속성 관리자를보고 마우스를 아래로 빠르게 검토). . 그런 다음이 컨텍스트 (크기 클래스)에서 제한 조건을 제거하십시오. 예를 들어, 필자의 경우 나중에 표시 할 위치를 결정할 때까지 컨트롤을 잡고 있으므로 나중에 문제가되는 제약 조건을 완전히 삭제하기로 결정했습니다. 그러나 크기 클래스에서는 속성 관리자의 설치된 확인란을 사용하여 현재 컨텍스트에서 제약 조건을 제거합니다.
로그 탐색기 / 찾기 도구
스토리 보드의 각 개체에 지정된 고유 식별자를 통해 문제 제어를 찾기 위해 Log Navigator를 계속 사용할 수도 있습니다. 로그에서 노란색으로 강조 표시된 텍스트 바로 앞에 있으며 위의 예에서 볼 수 있듯이 일반적으로 jvj-mY-DHf 양식을 사용합니다.
그런 다음 식별자를 사용하여 Xcode의 찾기 도구를 사용하여 문제가되는 제약 조건을 찾아 삭제 (완전히)하거나 제거 할 수 있습니다 (현재 컨텍스트의 경우).
Xml과 단순성을 좋아한다면 Storyboard를 소스 코드로 열고 문제가되는 고유 식별자를 찾아 적절한 xml 블록을 삭제하십시오.
나를 위해 일한 것은 (그리고 이유를 모릅니다) "특성 변형 사용"을 끈 다음 깨끗하게 수행 한 다음 다시 켜는 것입니다. 다음 빌드에는 경고가 없었습니다.
"특성 변형 사용"을 끄려면 프로젝트 탐색기에서 스토리 보드를 선택한 다음 파일 검사기를 선택하면됩니다.
그런 다음 "특성 변형 사용"을 선택 해제하고 Shift-CMD K를 눌러 정리 한 다음 특성 변형을 다시 사용하려면 다시 켜십시오.
@BadCat의 답변 에서 언급되고 잘 안내 된 것처럼 단계를 따라 갔고 감히 감수해야 할 단계가 하나 더 있습니다!
BadCats의 마지막 단계 이후에 수행 할 단계 :
1 단계:
Interface Builder에서 제약 조건을 선택한 다음 그 제약 조건을 염두에두고 삭제했습니다.
2 단계
XCode 프로젝트를 빌드하면 경고 수가 증가했을 수 있습니다. 잘 컴파일해야하는 제약 조건을 삭제했기 때문입니다. 3 단계로 가십시오!
3 단계
염두에 둔 구속 조건 (삭제 한 구속 조건)을 다시 추가하십시오. 그런 다음 다시 빌드하십시오!
나를 위해 경고를 수행하면 경고가 사라졌습니다! 나는 이것이 일부 사람들에게 효과적이라고 생각합니다!
원인:
이 경고의 원인이되는 문제를 이해할 수 있었기 때문에 레이블이 IBOutlet에 연결되었지만 이름이 대문자로 시작되었습니다. 그래서 ViewController에서 간단한 문자로 이름을 바꾸고 IB에서 이름을 변경했습니다. 과거 IBOutlet을 제거하고 새로 이름을 바꾼 속성 이름에 연결하여 연결했습니다. 그런 다음 새로운 경고가 나타났습니다.
먼저이 스레드에서 다음 답변을 시도했지만 도움이되지 않았습니다!
건배!