libc ++ abi.dylib: ยุติด้วยข้อยกเว้นที่ไม่ได้ตรวจสอบประเภท NSException (lldb)


186

ฉันกำลังเขียนโปรแกรมแอปอย่างรวดเร็วและเมื่อฉันรันแอพทดสอบบน iPhone simulator ทุกอย่างทำงานได้ แต่แล้วฉันก็พยายามปัดไปทางขวาซึ่งเป็นท่าทางที่ฉันเพิ่มเพื่อไปยังหน้าถัดไป (View Controller Two) มันล้มเหลวและแสดงรายงานข้อผิดพลาดนี้ในบันทึกของคอนโซล

2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001067813f5 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001082afbb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000106781039 -[NSException raise] + 9
    3   Foundation                          0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
    4   CoreFoundation                      0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224
    5   UIKit                               0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506
    6   UIKit                               0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
    7   UIKit                               0x000000010712fc88 -[UIViewController loadView] + 109
    8   UIKit                               0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75
    9   UIKit                               0x000000010713038e -[UIViewController view] + 27
    10  UIKit                               0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65
    11  UIKit                               0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105
    12  UIKit                               0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746
    13  UIKit                               0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132
    14  UIKit                               0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229
    15  UIKit                               0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262
    16  UIKit                               0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532
    17  UIKit                               0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51
    18  UIKit                               0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254
    19  UIKit                               0x00000001073b520d _UIGestureRecognizerUpdate + 2796
    20  UIKit                               0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041
    21  UIKit                               0x0000000107052cd3 -[UIWindow sendEvent:] + 667
    22  UIKit                               0x000000010701fae1 -[UIApplication sendEvent:] + 246
    23  UIKit                               0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370
    24  UIKit                               0x0000000107008233 _UIApplicationHandleEventQueue + 1961
    25  CoreFoundation                      0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    26  CoreFoundation                      0x00000001066ac99d __CFRunLoopDoSources0 + 269
    27  CoreFoundation                      0x00000001066abfd4 __CFRunLoopRun + 868
    28  CoreFoundation                      0x00000001066aba06 CFRunLoopRunSpecific + 470
    29  GraphicsServices                    0x000000010a1699f0 GSEventRunModal + 161
    30  UIKit                               0x000000010700b550 UIApplicationMain + 1282
    31  soundtest                           0x000000010624503e top_level_code + 78
    32  soundtest                           0x000000010624507a main + 42
    33  libdyld.dylib                       0x000000010ae4a145 start + 1
    34  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

8
เป็นไปได้มากว่าคุณได้วางสายบางอย่างใน NIB ที่ไม่มีอยู่อีกต่อไป ดูเหมือนว่าความผิดพลาดจะเกิดขึ้นเมื่อมุมมองที่คุณพยายามเปลี่ยนไปกำลังโหลด ฉันจะตรวจสอบร้านค้าทั้งหมดในบานหน้าต่างผู้ตรวจสอบ (ทางขวา) และตรวจสอบให้แน่ใจว่าร้านนั้นอยู่ด้วยหรือไม่ สิ่งนี้อาจเกิดขึ้นได้หากคุณต่อสายปุ่มหนึ่งไปยัง IBAction ที่ไม่มีอยู่อีกต่อไป (หรือถูกเปลี่ยนชื่อ)
cmyr

ไม่มีสิ่งใดที่ไม่ได้ถูกใช้งานและมันยังทำให้ฉันมีข้อผิดพลาด
Nick

หากคุณกำลังใช้ Xcode 8 กับโหมดดั้งเดิมของ Swift 2.3โปรดดูคำตอบนี้: stackoverflow.com/a/39548326/5175709
Honey

6
โดยทั่วไปให้ไปที่คอนโซลกดcmmd + Fเพื่อให้คุณสามารถค้นหาภายในคอนโซลและค้นหาแอปปลายทางเนื่องจากข้อยกเว้นที่ไม่ถูกตรวจจับอย่างแน่นอน 1 บรรทัดหลังจากนั้นคุณจะเห็นเหตุผล:ซึ่งบอกเหตุผลที่แอปของคุณล้มเหลว (ใช่ฉันเคยมีข้อผิดพลาดนี้หลายครั้งเกินไป :)
21917 Honey

1
นอกจากนี้ยังอาจเป็นประโยชน์ในการสร้างข้อยกเว้นจุดพักใน Debug-> จุดสั่งหยุด ตัวแก้จุดบกพร่องควรหวังว่าจะหยุดในบรรทัดของรหัสที่เป็นปัญหา
Chuck Boris

คำตอบ:


392

CMYR - "เขาอาจเกิดขึ้นได้หากคุณต่อสายปุ่มหนึ่งไปยัง IBAction ที่ไม่มีอยู่อีกต่อไป (หรือถูกเปลี่ยนชื่อ)"

หากคุณประสบปัญหานี้ให้แน่ใจว่าคุณไปที่ Main.storyboard แล้วคลิกขวาที่ไอคอนกล่องสีเหลือง (ตัวควบคุมมุมมอง) ที่ด้านบนของโครงร่างโทรศัพท์และลบเต้ารับที่มีธงสีเหลือง

สิ่งที่เกิดขึ้นในกรณีเช่นนี้คุณอาจตั้งชื่อการกระทำแล้วเปลี่ยนชื่อเป็น คุณต้องลบชื่อเก่าและหากเป็นปัญหาเดียวที่จะเริ่มในซิม!

ป้อนคำอธิบายรูปภาพที่นี่


9
คำตอบที่ดีขอบคุณ! นี่คือข้อบกพร่องที่ร้ายแรงด้วย XCode การจัดการข้อผิดพลาดต้องการการพัฒนาอย่างมาก
HyperionX

3
ฉันยังมีปัญหากับสามเหลี่ยมสีเหลือง แต่การแก้ไขแค่สามเหลี่ยมเหล่านั้นก็ไม่ได้แก้ปัญหาความผิดพลาดของฉัน :(
Andrej

สิ่งนี้เกิดขึ้นกับฉันหลังจากเปลี่ยนชื่อ @IBOutlet เป็น
Mohammed Fadhl

ควรตรวจสอบอีกครั้งเพื่อให้แน่ใจว่ากระดานเรื่องราวรวมอยู่ในเป้าหมายหรือไม่
hoangtuanfithou

เพียงแค่ตรวจสอบร้านค้าและการอ้างอิงการดำเนินการในตรวจสอบการเชื่อมต่อบนกระดาน
ÁlvaroAgüero

95

คุณตั้งค่าตัวแปร OS_ACTIVITY_MODE โดยบังเอิญหรือไม่? ในการตรวจสอบว่าคุณมีชุดตัวแปรนี้ (และปิดการทำงาน) ใน Xcode 9 ให้ทำดังต่อไปนี้:

Select from Xcode menu Product -> Scheme -> Edit Scheme.. Select the Run scheme and look under Arguments. If you see the OS_ACTIVITY_MODE variable checked, deselect it


1
ขอบคุณ! ฉันไม่เห็นเหตุผลความผิดพลาดเนื่องจาก: "ตัวเลือกที่ไม่รู้จักส่งไปยังชั้นเรียน"
Denis Kutlubaev

14
ความเศร้าโศกที่ดี, แอปเปิ้ล ข้อบกพร่องของระบบปฏิบัติการที่ไม่มีการผสมจะบังคับให้เราเปิดใช้งานและจากนั้นเราพลาดข้อความการดีบักที่สำคัญจริง ๆ เยี่ยมมาก Siddhesh
Nate

ขอบคุณฉันได้เพิ่มตัวแปรนี้ก่อนหน้านี้และลืมปิดการใช้งาน คุณจับมัน!
Rodrigo Recio

1
ว้าวขอบคุณโดยที่ฉันไม่เคยพบข้อผิดพลาดของฉัน ใช่ขันแอปเปิ้ลสำหรับข้อมูลการแก้ไขข้อบกพร่องการเลื่อนแบบบั๊กกี้
ShadowLightz

จริง ขอบคุณ!
Senocico Stelian

86

ใน Xcode 9 และ Swift 4:

พิมพ์สแต็กข้อยกเว้นเพื่อทราบสาเหตุของข้อยกเว้น:

  1. ไปที่แสดงการนำทางจุดพัก
  2. เพิ่ม (+) เพิ่มจุดพักข้อยกเว้น

  3. เลือกเบรกพอยต์ใหม่, คลิกควบคุม, แก้ไขเบรกพอยต์

  4. เพิ่มการดำเนินการและป้อน: po $ arg1

ป้อนคำอธิบายรูปภาพที่นี่


3
ควรสังเกตว่าการดำเนินการจะต้องเป็น 'คำสั่งดีบั๊กเกอร์' เนื่องจากมีตัวเลือกหลากหลายของประเภทการดำเนินการที่จะจัดการกับข้อยกเว้น แต่มันช่วยฉันได้จริงๆ! ขอบคุณ!
ทอดด์

คำตอบที่ดีที่สุด! บางครั้งฉันพบข้อผิดพลาดนี้ในพ็อดหรือ libs โดยไม่มีข้อมูลเพิ่มเติม หลังจากที่ฉันอ่านคำตอบของคุณหลายเดือนที่ผ่านมาฉันใช้มันหลายครั้งและฉันก็ช่วยฉันทุกครั้ง
user8675

1
คำตอบนั้นควรถูกชี้ว่าเป็น "วิธีทำให้ดีบักเกอร์ Xcode ทำงานได้อย่างไร"
Pier Giorgio Misley

คำตอบที่ดีที่สุดแน่นอนมันช่วยฉันได้มาก
Okan Kurtuluş

8

ในกรณีของฉันฉันเรียกวิธีผู้ร่วมประชุม แต่ไม่ได้ประกาศวิธีการ

ข้อผิดพลาดนี้เป็นเรื่องทั่วไปและสามารถปรากฏได้จากหลายสาเหตุ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ปิดการใช้งานบันทึกเพื่อดูสิ่งที่เกิดขึ้นจริง เปิดใช้งาน OS_ACTIVITY_MODEในแบบแผนหากคุณปิดการใช้งาน คุณอาจปิดการใช้งานเพื่อป้องกันการบันทึกที่ไม่เกี่ยวข้องจำนวนมาก แต่มีประโยชน์

po $arg1นอกจากนี้คุณยังสามารถติดตามสาเหตุในรายละเอียดมากขึ้นโดยการเพิ่มข้อยกเว้นเบรกพอยต์ ตามที่กล่าวไว้แล้วโดย Ahmed-Lotfi

นี่คือรายการตรวจสอบทั่วไปที่คุณสามารถผ่านได้

2) Check if you have renamed an IBOutlet and calling it
3) Check if you have renamed a method name or the method doesn't exist
4) Check if you are trying to add or remove any view from hierarchy
5) Check for any missing framework or library
6) Check if you’ve forgot to register your custom cell identifier
7) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.

1
รายการที่ดี! ในกรณีของฉันฉันลืมลงทะเบียนตัวระบุเซลล์ที่กำหนดเองของฉัน มันอาจคุ้มค่าที่จะเพิ่มเข้าไปในรายการของคุณเพราะมันอาจเป็นเรื่องง่ายที่จะลืมได้ง่าย
luismgb

7

โซลูชันอื่น ๆ ไม่ได้ทำงานในแบบฉันนี่เป็นของฉัน มันใช้เฉพาะกับ Xcode 8 เมื่อทำงานในโหมดดั้งเดิมของSwift 2.3 :

ดูเหมือนว่าตัวสร้างส่วนต่อประสานพยายามที่จะเปลี่ยนชื่อวิธีการที่ควรเชื่อมต่อกับปุ่ม

นี่คือเรดาร์พร้อมรายละเอียดเพิ่มเติม

วิธีแก้ปัญหา (วิธีแก้ปัญหา) คือการแทนที่ชื่อพารามิเตอร์วิธีด้วยตนเองเป็น_:

@IBAction func editPictureTapped(sender: UIButton) {  // not working
    print("Tapped")
}

เปลี่ยนเป็น:

@IBAction func editPictureTapped(_: UIButton) {     // working OK
    print("Tapped")
}

5

อาจเป็นชื่อตัวระบุ Segue ที่ไม่ถูกต้อง เช่น -

performSegueWithIdentifier("wrongSegueName", sender: self)

4

สถานการณ์ของฉันแตกต่างกันเล็กน้อยฉันพยายามแยกย่อยออกเป็น UINavigationControllerและสิ่งที่แก้ไขให้ฉันคือการได้รับส่วนคิวหลัก

สำหรับ Objective-C:

dispatch_async(dispatch_get_main_queue(), ^{
    [self performSegueWithIdentifier:@"SegueName" sender:self];
});

สำหรับ Swift 3:

DispatchQueue.main.async { [weak self] in
    self?.performSegue(withIdentifier: "SegueName", sender: self)
}

3

สิ่งนี้เริ่มเกิดขึ้นกับฉันใน Xcode 7 และฉันไม่มีร้านที่มีธงสีเหลืองที่ฉันสามารถลบได้

สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือแทนที่บรรทัดนี้ใน AppDelegate:

[window addSubview:viewController.view];

ถึง:

[window setRootViewController:viewController];

3

สำหรับฉันปัญหาอยู่ใน IBAction ของฉันด้วย UIButton

เมื่อคุณ Ctrl + ลากเพื่อสร้าง IBAction จาก UIButton ตรวจสอบให้แน่ใจว่าได้เลือก "UIButton" จากดรอปดาวน์ Type การเลือกเริ่มต้นของ AnyObject ทำให้แอปหยุดทำงานเมื่อคุณแตะที่ UIButton

ป้อนคำอธิบายรูปภาพที่นี่


ฉันตั้งค่าประเภทปฏิบัติการเป็น AnyObject แต่ในกรณีของฉันมันไม่ทำงาน
Andrej

หากคุณอ่านโพสต์ของฉันฉันทำให้จุดที่ AnyObject ไม่ทำงานตามที่คุณพบ
Chris Livdahl

3

นอกจากนี้ยังอาจเป็นกลุ่มที่ถูกทริกเกอร์ที่ใช้งานไม่ได้เช็คอินสตอรีบอร์ดของคุณทันทีที่คุณเชื่อมต่อส่วนย่อยหรือเปิดใหม่ทุกอย่างจะทำงานได้อีกครั้ง

ตรวจสอบ Segues

ตรวจสอบให้แน่ใจIdentifierของ Segue ถูกต้องและคล้ายกับของคุณรหัส

ป้อนคำอธิบายรูปภาพที่นี่


2

ฉันพบปัญหานี้เมื่อฉันเปลี่ยนชื่อของตัวแปรที่เชื่อมต่อกับปุ่มใดปุ่มหนึ่งของฉัน ดังนั้นโปรดจำไว้!


2

ฉันยังใหม่กับ Xcode ดังนั้นฉันใช้เวลาสองสามชั่วโมงในการหาปัญหาเพื่อโหลดไฟล์ xls ฉันทำตามตัวอย่างโค้ดส่วนใหญ่แล้วไม่มีใครแก้ไขข้อผิดพลาด Xcode ที่แสดง

วิธีแก้ปัญหาที่ฉันพบคือเราต้องระบุ 'เพิ่มไปยังเป้าหมาย:' ทำเครื่องหมายโครงการเพื่อเพิ่มเมื่อเรานำเข้าไฟล์ xls ไปยัง Xcode โดยการลากและวางลงในโครงการ -> ไฟล์สนับสนุน


1

อาจมีมากกว่า 1 IBAction สำหรับปุ่มในตัวควบคุมมุมมองลองค้นหาและลบรายการก่อนหน้าทั้งหมดสำหรับปุ่มนั้นในตัวควบคุมของคุณและสร้างปุ่มใหม่มันจะแก้ปัญหาของคุณ


1

ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้ข้อ จำกัด แบบสัมพัทธ์กับมุมมองที่ยังไม่มีอยู่ในมุมมองลำดับชั้น

UIView *bottomView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:bottomView];

bottomConstraint = [NSLayoutConstraint constraintWithItem:bottomView
                                                attribute:NSLayoutAttributeBottom
                                                relatedBy:NSLayoutRelationEqual
                                                   toItem:self.view
                                                attribute:NSLayoutAttributeBottom
                                               multiplier:1
                                                 constant:0];
bottomConstraint.active = YES;

ในตัวอย่างด้านบนbottomViewได้ถูกทำให้เป็นส่วนหนึ่งของลำดับชั้นการดูก่อนที่จะใช้ข้อ จำกัด สัมพัทธ์กับมัน


1

ฉันพบข้อผิดพลาดนี้ใน 2 วิธีต่อไปนี้:

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันผลักดันเข้าสู่ UIViewController อื่น

ฉันพลาดคลาสอื่นจากคลาสไปโดยไม่ตั้งใจ UITabBarControllerและได้รับข้อผิดพลาดนี้

ฉันได้รับการแก้ไขอย่างไร ฉันจัดคลาสย่อยUIViewControllerแล้วและฉันก็ไม่ล้มเหลวอีกต่อไป :)


ฉันไม่ต้องการใช้กระดานเรื่องราว ดังนั้นฉันจึงลบมัน แต่ฉันลืมที่จะลบการอ้างอิงในการตั้งค่าโครงการการตั้งค่าฉันคลิกที่โครงการ >> ทั่วไป >> ข้อมูลการปรับใช้ >> จากนั้นฉันตั้งค่าส่วนต่อประสานหลักเป็นพื้นที่สีดำ (ก่อนหน้านี้มันถูกตั้งค่าเป็นหลัก)

อย่างที่คุณเห็นทั้งสองสถานการณ์คุณได้รับข้อผิดพลาดในการเข้าถึงวัตถุบางอย่างที่มีอยู่ ...


1

ฉันจะเพิ่มปัญหาของฉันลงในรายการวิธีแก้ปัญหาที่เป็นไปได้ในกรณีที่มีคนอื่นเกิดขึ้นกับหัวข้อนี้

ตัวระบุเซลล์ TableView ก่อนอื่นตรวจสอบให้แน่ใจว่าเซลล์ของคุณมีตัวระบุ ประการที่สองตรวจสอบให้แน่ใจว่าคุณอ้างถึงตัวระบุนั้นเมื่อคุณ dequeue เซลล์


1

สวิฟท์ 4 :

ฉันได้รับข้อผิดพลาดนี้เนื่องจากมีการเปลี่ยนแปลงใน UIVisualEffectView api ใน Swift 3 การทำเช่นนี้ทำได้: myVisuallEffectView.addSubview(someSubview)

แต่ใน Swift 4 ฉันต้องเปลี่ยนเป็น: myVisualEffectView.contentView.addSubview(someSubview)


1

ฉันมีข้อผิดพลาดเดียวกันนี้เมื่อฉันพิมพ์ผิดสำหรับมุมมองหนึ่งขณะสร้างข้อ จำกัด โดยใช้ตัวจัดรูปแบบภาพ ฉันหวังว่าจะช่วยใครบางคน ... หรือฉันอีกครั้งในหนึ่งวัน




0

สำหรับกรณีของฉันXcode 8.2.1ฉันมีMap Kit Viewในตัวควบคุมมุมมอง ดังนั้นฉันไป

สร้างเฟส> เชื่อมโยงไบนารีกับไลบรารี

และเพิ่มMapKit.frameworkแล้วมันก็ดี

ฉันคิดว่าสิ่งนี้จะนำไปใช้กับมุมมองอื่น ๆ ที่ต้องใช้กรอบงานด้วย

PS ที่ทำงานบน iOS 9 บอกฉันว่ามีปัญหาเกี่ยวกับ Map Kit View ในขณะที่ iOS 10 ไม่ได้บอกอะไรเลย!


0

เฉพาะโซลูชัน "drop armageddon" ที่ใช้ได้กับฉัน:

  • ลบแอพออกจากอุปกรณ์
  • ทำความสะอาดโครงการ
  • เรียกใช้การติดตั้งใหม่บนอุปกรณ์

0

ในกรณีของฉันมันเป็น XCode ที่เริ่มเบื่อและล้มเหลวในการเริ่มต้นแอพด้วยข้อความนี้เนื่องจากการยืนยันล้มเหลว (ที่ถูกกำหนดโดยรหัสของเรา)

การใช้อุปกรณ์อื่นแสดงความล้มเหลวในการยืนยันซึ่งเราสามารถแก้ไขได้และทุกอย่างกลับสู่ปกติ


0

สำหรับ Swift 2.3

นี่น่าจะเป็นข้อผิดพลาดกับ Xcode 8 และ Swift 2.3 ถ้าคุณเชื่อมต่อการกระทำของปุ่มกับโค้ดของคุณผ่านสตอรี่บอร์ดให้แน่ใจว่า Xcode ไม่ได้เปลี่ยนชื่อการกระทำสำหรับฉันมันเพิ่มwithSender:ในตอนท้ายของวิธีการ ดังนั้นสิ่งที่ฉันทำคือไปที่รหัสของฉันและเปลี่ยนชื่อวิธีการเพื่อให้ตรงกับหนึ่ง Xcode เขียน

สำหรับรุ่นอื่น ๆ ให้ตรวจสอบคำตอบที่ถูกต้อง


0

ในกรณีของฉันมันเป็น InterfaceBuilder ฉันคัดลอกวิวบางส่วนจาก ViewController อื่นซึ่งทำให้ข้อ จำกัด ยุ่งเหยิง

ใน InterfaceBuilder ฉันมีข้อผิดพลาดลูกศรสีแดงบน ViewController

ในระหว่างการดำเนินการแอพขัดข้อง


0

ในกรณีของฉันแอปขัดข้องเพราะฉันไม่ได้ตั้งค่าความเป็นสมาชิกเป้าหมายของกระดานเรื่องราว


0

ในกรณีของโครงการBuild Settingsที่มีอยู่บางส่วนไปยังไดเรกทอรีที่ไม่ได้มีอยู่และFramework Search PathsLibrary Search Paths


0

ฉันมีสองประเด็น:

1) เป้าหมายของฉันไม่มีตัวควบคุมมุมมองรวมอยู่ซึ่งใช้ในไฟล์สตอรีบอร์ด

2) สตอรี่บอร์ดของฉันอายุประมาณ 3 ปีฉันต้องสร้างตัวควบคุมมุมมองหนึ่งในตัวควบคุมแถบแท็บใหม่ตั้งแต่เริ่มต้น (มีเพียง UITextField และฉันยังไม่รู้ว่าทำไมมันไม่ทำงาน)


0

อีกสาเหตุที่เป็นไปได้:

ในกรณีของฉันฉันมีxibและได้โทรBundle.main.loadNibNamed(...ไปที่จุดที่มันล้มเหลว ทั้งหมดของฉันIBOutletsและIBActionsดูเหมือนดี ในท้ายที่สุดฉันสังเกตเห็นว่าnibกำลังโหลดจริง แต่จากนั้นเมื่อฉันพยายามเข้าถึงมุมมองแรก (และเท่านั้น) ( nib.first) นั่นไม่ทำงาน อันที่จริงแล้วnib.countส่งคืนจำนวนเต็มที่มาก (max int?) แทนค่าที่คาดไว้1ไว้ ฉันลองเพิ่มมุมมองใหม่ แต่ก็ยังไม่มีโชค

ในท้ายที่สุดฉันลบxibไฟล์ทั้งหมดและเริ่มต้นใหม่อีกครั้ง (แต่ฉันเก็บมุมมองบางส่วนไว้ในคลิปบอร์ดของฉันเพื่อให้ฉันสามารถวางพวกเขาแทนที่จะสร้างใหม่อีกครั้ง)

สิ่งนี้ได้ผล!


0

สิ่งนี้สามารถเกิดขึ้นได้หากคุณมีตารางและลืมกำหนด UITableViewDelegate และ UITableViewDataSource ให้กับคลาส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.