ตัวควบคุมมุมมองของคุณอาจมีคลาสไม่ถูกต้องใน xib ของคุณ
ฉันดาวน์โหลดโครงการของคุณ
ข้อผิดพลาดที่คุณได้รับคือ
'NSUnknownKeyException' เหตุผล: '[<UIViewController 0x3927310> setValue: forUndefinedKey:]: คลาสนี้ไม่ได้เป็นค่าคีย์เข้ารหัสตามสตริงคีย์'
มันเกิดจากการSecond
ควบคุมมุมมองในMainWindow.xib
การมีระดับของแทนUIViewController
SecondView
การเปลี่ยนคลาสที่ถูกต้องช่วยแก้ปัญหา
โดยวิธีการมันเป็นวิธีที่ไม่ดีที่จะมีชื่อเช่น "สตริง" ในวัตถุประสงค์ -C มันเชิญชนการตั้งชื่อรันไทม์ หลีกเลี่ยงพวกเขาแม้ในครั้งเดียวปิดแอพฝึกฝน การตั้งชื่อการชนอาจทำได้ยากมากและคุณไม่ต้องการเสียเวลา
อีกเหตุผลที่เป็นไปได้สำหรับข้อผิดพลาดนี้: เมื่อคัดลอก & วางองค์ประกอบจากคอนโทรลเลอร์หนึ่งไปยังอีก Xcode จะเก็บลิงค์นั้นไปยังคอนโทรลเลอร์เดิมแม้ว่าจะทำการแก้ไข & เชื่อมโยงองค์ประกอบนี้ไปยังคอนโทรลเลอร์ใหม่ก็ตาม
อีกสาเหตุที่เป็นไปได้สำหรับข้อผิดพลาดนี้:
ร้านไม่ดี
คุณได้ลบหรือเปลี่ยนชื่อชื่อร้านใน.h
ไฟล์ของคุณ
ลบออกใน.xib
หรือ.storyboard
ตรวจสอบการเชื่อมต่อของไฟล์
อีกเหตุผลหนึ่งที่เป็นไปได้
(ในกรณีของฉัน) ส่วนขยายของ UIView ด้วยคุณสมบัติที่สามารถรวมได้และการตั้งค่าสำหรับคุณสมบัติที่สามารถรวมได้ (เช่นเงารัศมีของมุม ฯลฯ ) จากนั้นลบคุณสมบัติเหล่านั้นออกจากส่วนขยาย UIView (ด้วยเหตุผลบางอย่าง) แต่<userDefinedRuntimeAttributes>
ยังคงอยู่ใน xml (จากfoo.storyboard
):
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="shadowColor">
<color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="shadowOpacity">
<real key="value" value="50"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="point" keyPath="shadowOffset">
<point key="value" x="5" y="5"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="shadowRadius">
<real key="value" value="16"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderWidthValue">
<real key="value" value="0.0"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
การแก้ไข:คลิกขวาที่foo.storyboard
> เปิดเป็นซอร์สโค้ด> ค้นหาโดย keyPath (เช่น shadowRadius)> ลบสิ่ง</userDefinedRuntimeAttributes>
ที่ทำให้เกิดปัญหา