ข้อความแสดงข้อผิดพลาด '_BSMachError: (os / kern) ความสามารถที่ไม่ถูกต้อง (20)'


173

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

แก้ไข 10 พ.ย. 2558นอกจากนี้โปรดทราบว่าฉันทำเครื่องหมายคำตอบของฉันเองว่าเป็นคำตอบ แต่ก่อนหน้านี้มีใครโพสต์ ฉันเดาว่าไม่ควรทำเครื่องหมายว่าเป็นคำตอบจริง ๆ เพราะอย่างที่เราเห็นด้านล่าง ... ข้อผิดพลาดนี้ไม่มีคำตอบเดียวเพราะระดับต่ำมาก

ฉันกำลังวิ่ง

  • iOS 9.0 Simulator
  • XCode 7.0

ทุกอย่างทำงานได้ดีเมื่อวานนี้

วันนี้หลังจากทำงานเกี่ยวกับการหมุนสิ่งต่าง ๆ ฉันเริ่มรับข้อผิดพลาดนี้ในผลลัพธ์คอนโซลของฉันเมื่อฉันเรียกใช้แอพใน Simulator และฉันหมุนมัน

_BSMachError: (os / kern) ความสามารถที่ไม่ถูกต้อง (20)

_BSMachError: (os / kern) ชื่อที่ไม่ถูกต้อง (15)

สกรีนช็อตสำหรับปัญหานี้ - ฉันลบโฟลเดอร์บิลด์ฉันได้ล้างโฟลเดอร์ข้อมูลที่ได้มาแล้ว - ฉันรีเซ็ตตัวจำลอง

ฉันทำงานกับ

  • UIViewController viewWillLayoutSubviews
  • UIViewController viewWillTransitionToSize:...

ฉันกำลังตรวจสอบการตั้งค่า 'การวาด' ที่หลากหลายบนตัวตรวจสอบแอตทริบิวต์ใน IB

ฉันยังสร้างหมวดหมู่ยูทิลิตี้บน UIView ซึ่งฉันได้สร้างวิธีการมากมายที่สร้างCGRectและช่วยให้ฉันกำหนดเฟรมให้กับมุมมอง

Root View Controller

การตั้งค่า Root View Controller


ฉันได้รับข้อผิดพลาดนี้ขณะทำงานกับ BLE
Nex Mishra

1
ฉันยังหาวิธีแก้ปัญหาไม่ได้และฉันยังได้รับมันขณะหมุน ฉันยังได้รับการเตือนหน่วยความจำหลังจากนั้นไม่นานในบางครั้งแม้ว่า Xcode จะรายงานว่ามีการใช้หน่วยความจำเพียงเล็กน้อยเท่านั้น ที่น่าผิดหวัง
Narco

79
MyFoodTracker
ดีใจที่

8
ทำไม MyFoodTracker ถึงขีดเส้นสีแดงในภาพหน้าจอ
MariánČerný

2
@LogicsaurusRex "มันหมายความว่าอะไร" ไม่ใช่คำถามที่มีประโยชน์ แต่ "ต้องแก้ไขใช่หรือไม่" อาจเป็นคำถามที่ดีกว่า (ซึ่งฉันต้องการคำตอบ) แอปของฉันทำงานได้ดี แต่กำลังแสดงข้อผิดพลาดนี้ ฉันชอบที่จะตรึงมันไว้และแก้ไข แต่นี่ไม่ใช่แอพเล็ก ๆ และการค้นหามันจะทำให้ฉันเสียเวลาอันมีค่า
vrwim

คำตอบ:


144

อ้างอิงจากhttps://forums.developer.apple.com/thread/15683 :

เปลี่ยน " Localization ภูมิภาคพัฒนาพื้นเมือง " ในสหรัฐอเมริกาแทนinfo.plisten

อัปเดต: จากนั้นคุณสามารถย้อนกลับการเปลี่ยนแปลงเหล่านี้ได้


3
มันก็ใช้ได้สำหรับฉันเช่นกัน ฉันจึงเปลี่ยนการตั้งค่าเป็น "en" และข้อผิดพลาดดูเหมือนว่าจะไม่กลับมา
Skoua

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

เหมืองแร่มีการตั้งค่าไม่ja enฉันควรทำอย่างไรดี? ตั้งเป็นJapan?
นิโคลัส Miari

1
สิ่งนี้ใช้ได้ผล อย่างไรก็ตามเปลี่ยนกลับเป็น en อีกครั้งและไม่มีข้อผิดพลาด😒
Neo Ighodaro

30
ฉันไม่ชอบคำตอบเช่นนี้ เพราะมันไม่ได้อธิบายอะไรเลย มันเป็นข้อผิดพลาดใน XCode หรือไม่? การวางตำแหน่งรหัสของเราผิดหรือเปล่า? หรืออะไร?
GeneCode

66

ฉันยังพบ_BSMachErrorข้อผิดพลาดของคอนโซลในขณะที่เชื่อมโยงลึกเข้าไปในแอพการตั้งค่าบน iOS 9 จากการUIAlertControllerกระทำ dispatch_asyncแก้ปัญหาของฉัน:

[aAlertVC addAction:[UIAlertAction actionWithTitle:@"Settings" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
    dispatch_async(dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    });
}]];

2
นี้ถูกลบออกข้อผิดพลาดคอนโซลสำหรับฉัน แต่ข้อผิดพลาดคุกหลักที่ผมได้พยายามที่จะแก้ไขปัญหาที่เกิดขึ้นในเวลาเดียวกันไม่ได้ช่วย
เจสัน

อาจสรุปคำตอบนี้ฉันได้ของฉันในขณะที่ดำเนินการต่อใน uialertcontroller (เกือบรหัสเดียวกัน) อาจเป็นเรื่องเกี่ยวกับวิธีที่ตัวควบคุมการแจ้งเตือนดึงตัวเองออกจากภาพ แก้ไขปัญหาของฉันด้วย dispatch_async ด้วย
user3802077

ปัญหาเดียวกันที่นี่ - โดยเฉพาะสิ่งนี้เกิดขึ้นในตัวจำลอง 9.2 เมื่อไปที่การตั้งค่าระบบจากภายในแอพของฉันผ่านตัวจัดการสำหรับ UIAlertAction จากภายใน UIAlertController เมื่อฉันเขียนรหัสใหม่ไปที่ UIAlertController แทนที่จะเป็น UIAlertView แบบเดิมซิมก็โยนข้อผิดพลาด _BSMach เดียวกัน (15,20) ไม่ได้เกิดขึ้นบนอุปกรณ์จริง (ipad) Dispatch_async ทำให้การจำลองมีความสุข เกี่ยวข้องกับ UIAlertController อย่างแน่นอน
Mike Kogan

ปัญหาเดียวกันเลี้ยงมันหัวอีกครั้งคราวนี้ไม่ได้อยู่ในซิม แต่บนไอแพดและไม่ใช่ซิม คราวนี้มันเป็นรหัสบางอย่างที่ทำให้มุมมองกลายเป็นบริบท pdf ที่ทำให้เกิด macherrors dispatch_async อีกครั้งแก้ไข ฉันยังตรวจสอบว่าเมื่อรหัสนี้ถูกเรียกใช้โดยไม่ถูกเรียกใช้จากตัวจัดการความสมบูรณ์ของ UIAlertAction ใน UIAlertController ข้อผิดพลาดนี้จะไม่เกิดขึ้น ในทั้งสองกรณีของฉันพบข้อผิดพลาดเฉพาะในคอนโซลการดีบัก XCode และแอปยังคงทำงานได้อย่างถูกต้อง ไม่มีแนวคิดการแปลที่แนะนำในเธรดนี้มีผลกระทบใด ๆ ต่อสถานการณ์ใด ๆ
Mike Kogan

@ Jason ฉันมีปัญหาเดียวกันก็ลบข้อความแสดงข้อผิดพลาดคอนโซล แต่มันก็ยังล้มเหลว คุณจัดการเพื่อแก้ไขมันอย่างใด?
bp14

32

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

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


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

ถ้าฉันต้องใช้อย่างใดอย่างหนึ่งเหล่านี้
Zaraki

15

มันบ้า แต่สำหรับฉันทางออกก็แค่ลบจุดพักทั้งหมดในไฟล์ที่เกิดข้อผิดพลาด

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

โอ้ XCode ที่รักของฉัน ...


สิ่งนี้ใช้ได้สำหรับฉัน เงื่อนงำหนึ่งที่เป็นปัญหาคือ Xcode จะแตกบนบรรทัดที่ไม่มีเบรกพอยต์ จากนั้นในบรรทัดอื่นฉันได้ _BSMachErrors ข้างต้น
didge

12

ฉันได้รับข้อผิดพลาดเดียวกัน ...

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

ฉันโทรหา openURL () จาก UIAlertAction

alert.addAction(UIAlertAction(title: actionTitle, style: .Default) {
    UIApplication.shared.openURL(url)
 }

การชะลอการประมวลผลของบล็อกจนกว่าลูปการรันถัดไปจะแก้ไข ...

alert.addAction(UIAlertAction(title: actionTitle, style: .Default) {
    OperationQueue.main.addOperation {UIApplication.shared.openURL(url)}
 }

9

ฉันได้รับข้อมูลต่อไปนี้เมื่อให้ข้อมูลใหม่:

> _BSMachError: (os/kern) invalid capability (20)
> _BSMachError: (os/kern) invalid name (15)

ข้อผิดพลาดเกิดขึ้นเมื่อมีการใช้ปุ่มเพื่อจัดหาข้อมูลใหม่ NSTimerถูกใช้ในการฟื้นฟูและปรับปรุงข้อมูลเมื่อกลับมาจากperformSegueWithIdentifierการกระทำ ตัวจับเวลาถูกเปิดใช้งานและทำให้ใช้งานไม่ได้ทันทีหลังจากใช้งานในเวลาที่ส่งคืน MSMachErrorหยุดเมื่อเวลาที่ถูกถอดออกและ - (void)viewWillAppear:(BOOL)animatedและ(void)viewDidAppear:(BOOL)animatedถูกว่าจ้างในการดำเนินการฟังก์ชันเดียวกัน ข้อผิดพลาดนี้เริ่มต้นด้วยการอัพเกรดเป็น Xcode 7


6

ฉันได้รับการแก้ไขปัญหานี้โดยการเปลี่ยนค่าของLocalization native development regionคีย์เป็นUnited Kingdom [หรือภูมิภาคเฉพาะ]จากค่าเริ่มต้นที่enมีอยู่ในinfo.plistโครงการของคุณ

  1. เลือก Project Navigator
  2. ค้นหาinfo.plistไฟล์ที่มีอยู่ในโฟลเดอร์ ProjectNameTests
  3. เปลี่ยนค่าLocalization native development region keyเป็นภูมิภาคใด ๆ โดยเฉพาะเช่น ประเทศอังกฤษ

ขั้นตอนที่ 1 และ 2

ขั้นตอนที่ 3


ใช่การแก้ไขนี้ฟังดูบ้า แต่ใช้งานได้ สำหรับฉันแล้วแอพนี้ทำงานเมื่อ Xcode 7.3.1 ถูกปรับใช้กับ iPod touch 5th gen แต่เมื่อครั้งแรกที่นำมาจาก Xcode ไปผูก iPad Air BSMachErrorผมพบนี้ การสลับขอบเขตเพื่อUnited Statesทำให้ข้อผิดพลาดหายไป อีกหนึ่งความลึกลับของ Xcode ที่อธิบายไม่ได้
Basil Bourque

4

ฉันพบปัญหาเดียวกันใน NSOperation ที่ทำงานบนเธรดพื้นหลังและฉันยังคงได้รับข้อผิดพลาดนี้เนื่องจาก UIAlertController ยังคงลบตัวเองเนื่องจากธุรกรรม UI อื่นกำลังพยายามที่จะเกิดขึ้น แก้ไขรหัสของฉันเพื่อแก้ไขปัญหานี้

defer { 
    dispatch_async( dispatch_get_main_queue(),{
        completion()
    }) 
}

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


4

ฉันพบข้อผิดพลาดเดียวกันความสามารถที่ไม่ถูกต้อง (20) & ชื่อไม่ถูกต้อง (15) ฉันลองวิธีแก้ปัญหาตามที่ผู้อื่นกล่าวถึงเช่น:

  • คีย์ภูมิภาคการพัฒนาดั้งเดิมของ Localization ใน info.plist
  • การเปลี่ยนการตั้งค่าการวาดในตัวตรวจสอบคุณสมบัติ
  • แม้กระทั่งการเปลี่ยนแปลงพจนานุกรมข้อยกเว้นของ ATS ใน info.plist

แต่ไม่มีวิธีแก้ปัญหาเหล่านี้แก้ปัญหาของฉัน อันที่จริงฉันพยายามแชร์เอกสารบางส่วน แต่การสร้างเอกสารจะใช้เวลาสักครู่และต้องการแสดง UIActivityIndicatorView ให้กับผู้ใช้จนถึงเวลาที่โหลดเอกสาร

ทางออกสำหรับข้อผิดพลาดของฉันคือ:

//Create a alertView add UIActivityIndicatorView to it and present it in ViewController

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//Call method 1 todo background process like getting data

dispatch_sync(dispatch_get_main_queue(), ^{
    //Call method 2 to update the UI
    [alert dismissViewControllerAnimated:YES completion:^(void){
        //My mistake was: I was calling method 2 over here to update the UI
        return;
    }];
});
});

ยอดเยี่ยมทำงานให้ฉัน! สิ่งสำคัญที่ควรทราบว่าควรทำการอัปเดต UI ใน dispatch_get_main_queue ()
MkaysWork

3

การเปลี่ยนสายอักขระการแปลจาก en เป็นสหรัฐอเมริกาแก้ไขปัญหานี้ให้ฉัน อย่างไรก็ตามให้แน่ใจว่าคุณทำความสะอาดหลังจากที่คุณเปลี่ยน Info.plist ฉันสังเกตเห็นว่าการอัปเดตไม่ทำงานเมื่อคุณเพิ่งสร้างหลังจากทำการเปลี่ยนแปลงอย่างสมบูรณ์ป้อนคำอธิบายรูปภาพที่นี่



2

ฉันสามารถทำซ้ำข้อผิดพลาดสำหรับฉัน: หากมีการเปลี่ยนแปลงหนึ่งในมุมมองภายในมุมมองที่ฉันปิดจริงแล้ว (popViewControllerAnimated) ฉันได้รับข้อผิดพลาด

ฉันมีการกระทำ UINavigationButton ที่ทำให้งานแบบอะซิงโครนัส (POSTRequest) ก่อนดำเนินการตามคำขอนี้ฉันจะตั้งค่า customView ของปุ่มนั้นเป็นตัวบ่งชี้ความคืบหน้า เมื่อกลับมาจากการโทรแบบอะซิงโครนัสฉันจะส่งไปยังเธรดหลักและรีเซ็ต customView ของปุ่มนั้น หลังจากนั้นฉันปิดมุมมอง (popViewControllerAnimated)

นี่คือรหัสที่ถูกต้องที่ข้อผิดพลาดไม่ปรากฏขึ้น:

/* right way, working without BSMachError */
@IBAction func sendRequest(sender: UIBarButtonItem) {
    /* setting the progress indicator as customView of the self.saveButton */
    self.showActivityIndicatory(self.saveButton)
    /* asynchronous REST call */
    UserDataManager.sharedInstance.requestFeedback(request, onCompletion: { error in
        dispatch_async(dispatch_get_main_queue(),{
        /* resetting the saveButton again to default by setting customView to nil */
        self.saveButton.customView = nil
        /* closing the view */
        self.navigationController!.popViewControllerAnimated(true)
      })
    })
}

สิ่งที่ทำให้เกิดข้อผิดพลาดคือการสลับสาย: ปิดมุมมองจากนั้นตั้งค่า customView เป็นศูนย์:

/* WRONG way, causing BSMachError */
@IBAction func sendRequest(sender: UIBarButtonItem) {
    /* setting the progress indicator as customView of the self.saveButton */
    self.showActivityIndicatory(self.saveButton)
    /* asynchronous REST call */
    UserDataManager.sharedInstance.requestFeedback(request, onCompletion: { error in
        dispatch_async(dispatch_get_main_queue(),{
        /* closing the view */
        self.navigationController!.popViewControllerAnimated(true)
        /* resetting the saveButton again to default by setting customView to nil */
        self.saveButton.customView = nil
      })
    })
}

2

ข้อผิดพลาดนี้เริ่มโผล่ขึ้นมาหลังจากฉันเพิ่มผู้สังเกตการณ์บางคน:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWillHideOrShow(_:)), name:UIKeyboardWillShowNotification, object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWillHideOrShow(_:)), name:UIKeyboardWillHideNotification, object: nil)

ปัญหาหายไปเมื่อฉันระบุชื่อคลาสแทนself:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.keyboardWillHideOrShow(_:)), name:UIKeyboardWillShowNotification, object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.keyboardWillHideOrShow(_:)), name:UIKeyboardWillHideNotification, object: nil)

2

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

ฉันมีทางออกของ viewGraph ซึ่งเป็นคลาสย่อยของ UIView ที่ฉันวาดกราฟิกบางอย่างในโหมดแนวนอนขนาดของ viewGraph มีขนาดใหญ่กว่าในโหมดแนวตั้ง ดังนั้นเมื่ออุปกรณ์เปลี่ยนการวางแนว SpeedGraph จำเป็นต้องวาดใหม่

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

ฉันทำอะไรผิดที่ทำให้เกิดข้อผิดพลาดปรากฏขึ้น ใน viewDidAppear ฉันเรียกวิธีการที่จะทำการคำนวณและเพิ่มมุมมองย่อยไปยังมุมมอง speedGraph ปัญหาคือว่าการสัมภาษณ์ย่อยเหล่านี้ถูกสร้างขึ้นในวิธีการและถูกเพิ่มไปยังมุมมอง speedGraph ในวิธีนี้ หลังจากออกจากวิธีการอ้างอิงไปยังการดูย่อยเหล่านี้แน่นอนลบ แต่การดูย่อยในมุมมอง SpeedGraph ยังคงอยู่เนื่องจากมีการเพิ่ม เมื่ออุปกรณ์เปลี่ยนการชมย่อยจะถูกสร้างขึ้นอีกครั้งและเพิ่มไปยังมุมมอง speedGraph ที่มีการชมย่อยเหล่านี้อยู่แล้ว แต่ไม่สามารถหาการอ้างอิงถึงการชมย่อยเหล่านี้ได้อีก อาร์เรย์ของมุมมองย่อยของมุมมอง SpeedGraph นั้นยาวขึ้นเรื่อย ๆ ด้วย (ฉันคิดว่า) การห้อยย่อยของผู้ชม

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


2

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

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

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


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

1

ผมได้รับข้อความแสดงข้อผิดพลาดเดียวกันเพราะผมคุณสมบัติเหมือนคงที่โดยการเปลี่ยนไปassignobject@property (assign, nonatomic) NSNumber *aVariable;strong


1

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


นี่เป็นปัญหาที่ฉันมีเช่นกัน แต่เนื่องจากตัวควบคุมมุมมองถูกยกเลิกโดยปุ่มย้อนกลับจากแถบนำทางของตัวควบคุมทิศทางprepareForSegue()ไม่ได้รับการเรียกและฉันไม่รู้ว่าจะเลิกใช้งานการตอบกลับครั้งแรกอย่างไร
TimSim

1

ฉันเห็นสิ่งนี้เมื่อฉันกดHomeปุ่มในขณะที่มีการUIAlertControllerแสดงซึ่งถูกไล่ออกเมื่อฉันเปิดแอปอีกครั้ง ฉันเพิ่มรหัสเพื่อยกเลิกการUIAlertControllerในappDelegate:

func applicationWillResignActive(application: UIApplication) {
  window?.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
}

และข้อความผิดพลาดหายไป


1

ฉันมีข้อผิดพลาดนี้เมื่อปิดการใช้งาน popover ผ่านตัวแทน ในผู้รับมอบสิทธิ์วิธีที่ฉันเรียกใช้ GUI-Stuff การใส่ GUI-Stuff ในการทำให้เสร็จสมบูรณ์บล็อคการเลิก ViewControllerAnimated แก้ไขมัน

[myPopoverView dismissViewControllerAnimated:YES completion:^{ //GUI-Stuff}];

1

ฉันเป็นคนใหม่ที่นี่ดังนั้นลองคิดดูว่ามันมีค่าขนาดไหน

สิ่งที่แก้ไขได้สำหรับฉันคือการเปลี่ยนเครื่องมือวัดจำลอง> ขนาด> เป็นเต็มหน้าจอของ iPad ทุกมุมมองของฉันยกเว้นสำหรับข้อผิดพลาดที่เราโยนให้เป็นแบบเต็มหน้าจอของ iPad เมื่อฉันเปลี่ยนมันข้อผิดพลาดก็หายไป ...


1

เหตุผลที่นักพัฒนาบางคนไม่ได้รับข้อผิดพลาดกลับมาหลังจากเปลี่ยนจาก "Unites States" เป็น "en" (หรือ) ภูมิภาคอื่น ๆ นั่นคือมีความแตกต่างระหว่างมุมมอง "รายการทรัพย์สิน" และ "ซอร์สโค้ด" มันอาจเป็นข้อผิดพลาดของ Xcode เมื่อใดก็ตามที่มีความไม่ตรงกันระหว่างมุมมองทั้งสองนี้จะทำให้เกิดข้อผิดพลาดนี้สิ่งใดก็ตามที่เป็น "en" หรือ "อังกฤษ" หากคุณเปลี่ยนเป็น "en" หรือ "United States" เพื่อให้มุมมองทั้งสองเหมือนกันจะแก้ไขปัญหา


1

ฉันได้รับข้อผิดพลาดนี้จาก:

var promptsArr =  StartRegAlerts() //Instance of the class

ฯลฯ

func textFieldDidBeginEditing(textField: UITextField) {     
    switch textField.tag {
            case 0:
                alert(promptsArr.prompts["Name"]!)
            case 1:
                alert(promptsArr.prompts["CellPhone"]!)
            case 4:
                alert2(promptsArr.prompts["NUMBERCORRECT"]!)
                //alert(promptsArr.prompts["Wait4Pin"]!)

            default: break
            }
It only occurred for case 0 but not the other cases:
As a work around for now I commented out case 0 and that stopped the error.
I then changed  calling promptsArr.prompts by:

สร้างพรอมต์พจนานุกรมใหม่และ:

 override func viewDidAppear(animated: Bool) {
             prompt = promptsArr.prompts //
      }

จากนั้นใช้พรอมต์ในการแจ้งเตือนของฉัน ที่แก้ไขปัญหา

ดังนั้นจึงปรากฏว่ามันเป็นปัญหาเวลา


ฉันเกรงว่าจะใช้งานได้เพียงชั่วครู่จากนั้นจะปรากฏขึ้นอีกครั้ง - ดังนั้นจึงให้ความเห็นเกี่ยวกับกรณีที่ 1 จากนั้นเรียกการแจ้งเตือนนั้นในภายหลังดูเหมือนว่าจะแก้ไขปัญหาได้แล้ว
Jeremy

0

ด้วย Xcode 8.1 และ iOs 10 ฉันก็ต้องเจอ

_BSMachError: (os / kern) ความสามารถที่ไม่ถูกต้อง (20)

_BSMachError: (os / kern) ชื่อที่ไม่ถูกต้อง (15)

พยายามที่จะแทนที่ UiTraiCollection var เพื่อเปลี่ยนที่รันไทม์คลาสของ iPad จะมีรูปแบบอินเทอร์เฟซต่าง ๆ สองแบบใน Portraid และ Landscape มันทำงานได้โดยไม่ผิดพลาด แต่สร้างข้อผิดพลาดของเรา

นี่คือรหัส "maliciuos":

override public var traitCollection: UITraitCollection {
    if UIDevice.currentDevice().userInterfaceIdiom == .Pad && UIDevice.currentDevice().orientation.isPortrait.boolValue {
        return UITraitCollection(traitsFromCollections:[UITraitCollection(horizontalSizeClass: .Compact), UITraitCollection(verticalSizeClass: .Regular)])
    }
    return super.traitCollection
}

ข้อผิดพลาดที่หายไปใช้override func viewWillTransitionเป็นทางเลือกในการตรวจจับการหมุนของอินเตอร์เฟส

ฉันหวังว่านี่จะเป็นประโยชน์กับใครบางคน


0

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

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