Thông báo lỗi '_BSMachError: (os / kern) khả năng không hợp lệ (20)'


173

Xin lưu ý rằng thông báo lỗi này ở mức khá thấp, vì vậy nó xuất hiện vì những lý do khác nhau trong các tình huống khác nhau. Nếu bạn có một kịch bản không được đề cập trong một trong những câu trả lời dưới đây, vui lòng xem xét thêm tình huống của bạn, vì vậy có thể đây có thể là câu trả lời trung tâm cho các tình huống khác nhau làm tăng thông báo lỗi này.

Chỉnh sửa ngày 10 tháng 11 năm 2015 Cũng lưu ý, tôi đã đánh dấu câu trả lời của riêng mình là câu trả lời, nhưng đó là trước khi bất kỳ ai khác đã đăng. Tôi đoán không ai thực sự nên được đánh dấu là câu trả lời, vì như chúng ta đã thấy dưới đây ... lỗi này không chỉ có một câu trả lời vì nó quá thấp.

tôi đang chạy

  • Trình mô phỏng iOS 9.0
  • XCode 7.0

Mọi thứ đã hoạt động tốt ngày hôm qua.

Hôm nay, sau một loạt các công việc liên quan đến xoay vòng, tôi bắt đầu gặp lỗi này trong đầu ra giao diện điều khiển của mình khi tôi chạy ứng dụng trong Trình mô phỏng và tôi xoay nó.

_BSMachError: (os / kern) khả năng không hợp lệ (20)

_BSMachError: (os / kern) tên không hợp lệ (15)

Ảnh chụp màn hình cho vấn đề này - Tôi đã xóa thư mục bản dựng của mình, - Tôi đã xóa thư mục dữ liệu dẫn xuất, - Tôi đã đặt lại trình giả lập.

Tôi đã làm việc với

  • UIViewController viewWillLayoutSubviews
  • UIViewController viewWillTransitionToSize:...

Tôi cũng đang kiểm tra các cài đặt 'Vẽ' khác nhau trên Thanh tra thuộc tính trong IB.

Tôi cũng đã tạo một danh mục tiện ích trên UIView nơi tôi đã tạo ra một loạt các phương thức tạo CGRectvà giúp tôi gán khung cho các khung nhìn.

Bộ điều khiển Root View

Cài đặt bộ điều khiển Root View


tôi gặp lỗi này khi làm việc trên BLE
Nex Mishra

1
Tôi chưa thể tìm ra giải pháp và tôi cũng nhận được giải pháp trong khi xoay vòng. Đôi khi tôi cũng nhận được cảnh báo bộ nhớ, ngay cả khi Xcode báo cáo rằng chỉ một lượng nhỏ bộ nhớ đang được sử dụng. Bực bội.
narco

79
Tốt nghĩ rằng bạn đã tái cấu trúc MyFoodTracker: P
Sam Soffes

8
Tại sao MyFoodTracker bị gạch chéo với dòng màu đỏ trong ảnh chụp màn hình?
Marián Černý

2
@LogicsaurusRex "Có nghĩa là gì?" thực sự không phải là một câu hỏi hữu ích, nhưng "Nó có cần sửa không?" có lẽ là một câu hỏi tốt hơn (mà tôi muốn câu trả lời). Ứng dụng của tôi có vẻ hoạt động tốt nhưng đang hiển thị lỗi này. Tôi muốn ghim nó xuống và sửa nó, nhưng đây không phải là một ứng dụng nhỏ và việc tìm kiếm nó sẽ khiến tôi mất thời gian quý báu.
vrwim

Câu trả lời:


144

Dựa trên https://forums.developer.apple.com/thread/15683 :

Thay đổi " Khu vực phát triển bản địa " tại info.plistHoa Kỳ thay vì en.

Cập nhật: Sau đó, bạn có thể hoàn nguyên các thay đổi này trở lại.


3
Nó làm việc cho tôi quá. Sau đó tôi đã hoàn nguyên cài đặt thành "en" và lỗi dường như không quay trở lại.
Skoua

Nó hoạt động với tôi như là một ví dụ MỚI của lỗi này xảy ra. Tôi đã đăng bài viết gốc ở đây và nhận được lỗi này vì một trong các hộp kiểm vẽ. Nó đã biến mất trong một thời gian dài, và bây giờ bắt đầu cắt lại vì một số lý do không rõ khác, và thay đổi điều này thực sự đã khắc phục nó ... HOLY COW thật tuyệt vời.
Logicsaurus Rex

Của tôi được thiết lập ja, không en. Tôi nên làm gì? Đặt nó thành Japan?
Nicolas Miari

1
Điều này đã làm việc. Tuy nhiên, đã quay trở lại en một lần nữa và không có lỗi
Neo Ighodaro 7/2/2016

30
Tôi không thực sự thích câu trả lời như thế này. Bởi vì nó không giải thích bất cứ điều gì. Có phải là một lỗi trên XCode? Có phải định vị mã của chúng tôi là sai? Hay cái gì?
GeneCode

66

Tôi cũng gặp phải _BSMachErrorlỗi bảng điều khiển trong khi liên kết sâu vào ứng dụng Cài đặt trên iOS 9 từ một UIAlertControllerhành động. A đã dispatch_asyncgiải quyết vấn đề của tôi:

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

2
Điều này đã loại bỏ lỗi giao diện điều khiển cho tôi, nhưng lỗi khóa chính tôi đang cố gắng khắc phục xảy ra cùng một lúc không giúp được gì
Jason

Có lẽ có thể khái quát câu trả lời này, tôi đã nhận được trong khi thực hiện segue trong một bộ điều khiển uialertcont (gần như cùng một mã). Có lẽ phải làm với cách thức bộ điều khiển cảnh báo tự ra khỏi hình ảnh. Đã giải quyết vấn đề của tôi với Clark_async.
3802077

vấn đề tương tự ở đây - cụ thể là điều này xảy ra trong trình giả lập 9.2 khi đi đến cài đặt hệ thống từ trong ứng dụng của tôi thông qua trình xử lý cho UIAlertAction từ bên trong UIAlertControll. Khi tôi viết lại mã cho UIAlertControll thay vì UIAlertView cũ, sim đã ném cùng một lỗi _BSMach (15,20). Không xảy ra trên thiết bị thực (ipad). Dispatch_async đã làm cho giả lập hạnh phúc. Chắc chắn có liên quan đến UIAlertControll.
Mike Kogan

vấn đề tương tự lại xuất hiện lần nữa, lần này không phải ở sim mà là trên ipad và KHÔNG phải là sim. lần này, một số mã đã đưa ra một khung nhìn vào bối cảnh pdf gây ra các macherrors. một lần nữa Clark_async đã sửa nó. Tôi cũng đã xác minh rằng khi mã này được thực thi mà không được gọi từ trình xử lý hoàn thành của UIAlertAction trong UIAlertControll thì lỗi này không xảy ra. trong cả hai trường hợp của tôi, lỗi chỉ hiển thị trong bảng điều khiển gỡ lỗi XCode và ứng dụng tiếp tục thực thi chính xác. Không có ý tưởng nội địa hóa nào được đề xuất về chủ đề này có bất kỳ tác động nào đến kịch bản.
Mike Kogan

@Jason Tôi gặp vấn đề tương tự, nó đã xóa thông báo lỗi giao diện điều khiển, nhưng nó vẫn gặp sự cố. Bạn đã quản lý để giải quyết nó bằng cách nào đó?
bp14

32

Ok, tôi đã không ghim nó hoàn toàn, nhưng điều này sẽ giúp bạn đạt được 99%. Tôi đang sử dụng điều khiển bản đồ của bên thứ ba từ ESRI và một cái gì đó về nó không giống như một trong các cài đặt bản vẽ này trong Trình kiểm tra thuộc tính. Tôi đã không thử từng cài đặt riêng lẻ để xem đó là cài đặt nào, nhưng khi tôi tắt tất cả chúng (trong hộp màu đỏ), mọi thứ đều hoạt động như một bùa mê và tôi thoát khỏi việc nhận thông báo lỗi ở trên trong bảng điều khiển. Nếu và khi tôi có thời gian để đưa nó xuống cài đặt chính xác hoặc kết hợp các cài đặt, tôi sẽ cập nhật câu trả lời.

nhập mô tả hình ảnh ở đây


Tôi nghĩ rằng câu trả lời của bạn là khá tốt. Tuy nhiên, tôi sẽ xóa văn bản in đậm ở trên cùng. Gần đây có rất nhiều câu trả lời ẩn danh tuyệt vời, tôi nghi ngờ đó là bất cứ điều gì cá nhân.
Jason D

Nếu tôi phải sử dụng một trong những thứ này thì sao?
Zaraki

15

Thật điên rồ nhưng đối với tôi, giải pháp chỉ là xóa tất cả các điểm dừng trong tệp nơi xảy ra lỗi.

Còn nguyên nhân? Tôi nghĩ rằng tôi đã vô tình nhấn một phím tắt để tạo một điểm dừng trong dòng hiện tại. Bởi vì đó là ngoài ý muốn, tôi nhấn phím tắt tương tự một lần nữa để xóa nó.

Ôi XCode thân yêu của tôi ...


Điều này làm việc cho tôi. Một manh mối cho thấy đây là vấn đề là Xcode sẽ phá vỡ các dòng không có điểm dừng. Sau đó, trên một dòng khác, tôi đã nhận được _BSMachErrors ở trên.
didge

12

Tôi đã nhận được cùng một lỗi ...

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

Tôi đã gọi openURL () từ một UIAlertAction

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

Trì hoãn thực thi khối cho đến khi vòng chạy tiếp theo cố định nó ...

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

9

Tôi đã nhận được những điều sau đây khi cung cấp dữ liệu mới:

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

Lỗi xảy ra khi một nút được sử dụng để cung cấp dữ liệu mới. An NSTimerđược sử dụng để làm mới và cập nhật dữ liệu khi trở về từ một performSegueWithIdentifierhành động. Bộ hẹn giờ đã được kích hoạt và sau đó vô hiệu hóa ngay sau khi sử dụng tại thời điểm trả lại. Việc MSMachErrordừng khi bộ hẹn giờ được gỡ bỏ và - (void)viewWillAppear:(BOOL)animated(void)viewDidAppear:(BOOL)animatedđược sử dụng để thực hiện chức năng tương tự. Lỗi này bắt đầu với việc nâng cấp lên Xcode 7.


6

Tôi đã khắc phục sự cố này bằng cách thay đổi giá trị của Localization native development regionkhóa thành United Kingdom [hoặc bất kỳ vùng cụ thể nào] từ giá trị mặc định của nó encó trong info.plistdự án của bạn.

  1. Lựa chọn Project Navigator
  2. Định vị info.plist tệp có trong thư mục ProjectNameTests.
  3. Thay đổi giá trị của Localization native development region keybất kỳ khu vực cụ thể, ví dụ. Vương quốc Anh

Bước 1 và 2

Bước 3


Vâng, sửa chữa này nghe có vẻ điên rồ, nhưng nó hoạt động. Đối với tôi, ứng dụng hoạt động khi Xcode 7.3.1 được triển khai lên thế hệ thứ 5 của iPod touch. Nhưng khi lần đầu tiên triển khai từ Xcode sang iPad Air bị trói, tôi đã gặp phải điều này BSMachError. Chuyển vùng để United Stateslàm cho lỗi đi. Một bí ẩn Xcode không thể giải thích khác.
Basil Bourque

4

Tôi cũng gặp vấn đề tương tự trong NSOperation chạy trên luồng nền và tôi vẫn gặp lỗi này vì UIAlertControll vẫn đang tự gỡ bỏ khi một giao dịch UI khác đang cố gắng diễn ra. Sửa đổi mã của tôi để sửa lỗi này.

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

Rất nhiều người không biết về trì hoãn - Nó cho phép phạm vi hiện tại hoàn thành và sau đó chạy theo. Kinda gọn gàng.


4

Tôi đã đối mặt với cùng một lỗi khả năng không hợp lệ (20) và tên không hợp lệ (15). Tôi đã thử các giải pháp như được đề cập bởi những người khác như:

  • Khóa khu vực phát triển bản địa hóa trong info.plist
  • Thay đổi cài đặt bản vẽ trong Trình theo dõi thuộc tính
  • Ngay cả từ điển ATS Exception đã thay đổi trong info.plist

Nhưng không có giải pháp nào giải quyết được vấn đề của tôi. Trên thực tế, tôi đã cố gắng chia sẻ một số tài liệu nhưng việc tạo tài liệu sẽ mất một chút thời gian và muốn hiển thị UIActivityTheicatorView cho người dùng cho đến khi tải tài liệu thời gian.

Giải pháp cho lỗi của tôi là:

//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;
    }];
});
});

Tuyệt vời, làm việc cho tôi! Điều quan trọng cần biết là việc cập nhật giao diện người dùng nên được thực hiện trong công
văn_get_main_queue

3

Việc thay đổi chuỗi nội địa hóa từ en sang Hoa Kỳ đã sửa lỗi này cho tôi. Tuy nhiên, hãy đảm bảo bạn dọn dẹp sau khi bạn thay đổi Info.plist. Tôi đã nhận thấy rằng các bản cập nhật không hoạt động khi bạn chỉ xây dựng sau khi thực hiện các thay đổi lớn.nhập mô tả hình ảnh ở đây


2

Trong trường hợp của tôi, đó là Little Snitch, nó tự động chặn các url.


2

Tôi có thể tái tạo lỗi cho tôi: Nếu thực hiện thay đổi đối với một trong các Chế độ xem trong Chế độ xem mà tôi thực sự đang đóng (popViewControllAnimated) Tôi nhận được lỗi.

Tôi đang có một hành động UINavestionButton để thực hiện một tác vụ không đồng bộ (POSTRequest). Trước khi thực hiện yêu cầu này, tôi đặt customView của nút đó thành một chỉ báo tiến trình. Khi quay lại từ cuộc gọi không đồng bộ, tôi gửi đến luồng chính và đặt lại customView của nút đó. Sau đó, tôi đóng chế độ xem (popViewControllAnimated).

Đây là mã ĐÚNG mà lỗi không xuất hiện:

/* 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)
      })
    })
}

Điều gây ra lỗi là chuyển dòng: đóng chế độ xem và sau đó đặt customView thành nil:

/* 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

Lỗi này bắt đầu bật lên sau khi tôi thêm một số người quan sát:

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

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

Vấn đề đã biến mất khi tôi chỉ định tên lớp thay vì 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

Tôi đã có cùng một lỗi và không có điều nào ở trên áp dụng cho vấn đề của tôi. Vấn đề xuất hiện khi tôi đăng ký bộ điều khiển chế độ xem của mình với tư cách là người quan sát thay đổi hướng thiết bị, do đó, các khung nhìn có thể được thay đổi kích thước và các bản vẽ trong chế độ xem có thể được thực hiện theo kích thước mới của chế độ xem.

Tôi đã có một cửa hàng của viewGraph là một lớp con của UIView trong đó tôi đã vẽ một số đồ họa. Ở chế độ ngang, kích thước của viewGraph lớn hơn ở chế độ dọc. Vì vậy, khi thiết bị thay đổi hướng của nó, speedGraph cần được vẽ lại.

Vấn đề là, tôi đã thêm một số cuộc phỏng vấn vào chế độ xem speedGraph, có chứa đồ họa. Những cuộc phỏng vấn này cần được đưa ra một lần nữa trong chế độ xem speedGraph và sau đó được vẽ lại. Sau khi thiết bị thay đổi hướng của nó, tôi gọi lại viewDidAppear để tạo chế độ xem speedGraph và tất cả các cuộc phỏng vấn của nó sẽ được trình bày lại và tự vẽ lại. Gọi setNeedDisplay cho speedGraph không hoạt động với các thay đổi định hướng và các cuộc phỏng vấn trong một khung nhìn.

Tôi đã làm gì sai khiến lỗi xuất hiện. Trong viewDidAppear, tôi gọi một phương thức thực hiện một số tính toán và thêm các lượt xem vào chế độ xem speedGraph. Vấn đề là những cuộc phỏng vấn này đã được tạo ra trong phương thức và đã được thêm vào chế độ xem speedGraph trong phương thức này. Sau khi rời khỏi phương thức, các tham chiếu đến các lần xem trước này, tất nhiên, đã bị xóa, nhưng các cuộc phỏng vấn trong chế độ xem speedGraph vẫn còn, vì chúng được thêm vào. Khi thiết bị thay đổi, các lần xem lại được tạo lại và được thêm vào chế độ xem speedGraph, đã có các cuộc phỏng vấn này, nhưng không thể tìm thấy các tài liệu tham khảo cho các cuộc phỏng vấn này nữa. Mảng các cuộc phỏng vấn của chế độ xem speedGraph ngày càng dài hơn với (tôi nghĩ) các cuộc phỏng vấn lơ lửng.

Tôi đã giải quyết vấn đề bằng cách xác định các cuộc phỏng vấn sẽ được thêm vào chế độ xem speedGraph dưới dạng một thuộc tính lớp và sau đó thực hiện những gì cần thực hiện với các khung nhìn bên trong phương thức này. Với sự thay đổi này, vấn đề đã biến mất.


2

Vì chúng tôi có thể đăng tất cả các tình huống trả lại cùng một lỗi ở đây, tôi cảm thấy thoải mái khi đăng bài của mình :). Tôi đã gặp Lỗi khi tôi thay đổi cài đặt quyền riêng tư trong nền. Ứng dụng của tôi đã mở ứng dụng cài đặt để người dùng có thể cấp quyền cho thư viện photol của mình, khi công tắc cấp phép được đặt, ứng dụng gặp sự cố với lỗi đã xử lý:

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

Đây có vẻ là một hệ thống khởi động lại bắt buộc ứng dụng của bạn bởi vì người dùng đã thay đổi những gì ứng dụng của bạn có thể tích lũy. Vì vậy, trong trường hợp của tôi, đó là một hành động của HĐH đã gây ra lỗi.


Tôi cũng có cái này Vì vậy, đây thực sự không phải là một lỗi. Khi ứng dụng không được kết nối với Xcode, sẽ không có gì đáng sợ xảy ra. Cảm ơn bạn, bạn có thể tiết kiệm hàng giờ thời gian gỡ lỗi của tôi.
yuji

1

Tôi đã nhận được thông báo lỗi tương tự, bởi vì tôi assignmột thuộc objecttính như thế @property (assign, nonatomic) NSNumber *aVariable;, được sửa bằng cách thay đổi thành strong.


1

Đối với những gì nó có giá trị - có vẻ như rất nhiều tình huống ném lỗi này. Trong trường hợp của tôi, tôi đã đăng một cảnh báo khi người dùng đang loại bỏ biểu mẫu nhập dữ liệu và dữ liệu ở dạng. Tôi đã có thể loại bỏ lỗi bằng cách lập trình từ chức phản hồi đầu tiên khỏi tất cả các trường áp dụng trước khi tháo gỡ bộ điều khiển xem.


Đây cũng là vấn đề tôi gặp phải, nhưng vì bộ điều khiển chế độ xem bị loại bỏ bởi nút quay lại từ thanh điều hướng của bộ điều khiển điều hướng, prepareForSegue()không được gọi và tôi không biết phải từ chức nơi trả lời đầu tiên.
TimSim

1

Tôi đã thấy điều này khi tôi nhấn Homenút trong khi a UIAlertControllerđược hiển thị, nó đã bị loại bỏ khi tôi khởi chạy lại ứng dụng. Tôi đã thêm mã để loại bỏ UIAlertControllertrong appDelegate:

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

và thông báo lỗi biến mất.


1

Tôi đã có lỗi này khi loại bỏ một popover thông qua đại biểu. Trong ủy nhiệmMethod, tôi đã kích hoạt một số GUI-Stuff. Việc đưa GUI-Stuff vào hoàn thànhBlock của notifyViewControllAnimated đã sửa nó.

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

1

Tôi là một người mới ở đây vì vậy hãy xem điều này là xứng đáng.

Điều đã khắc phục điều này đối với tôi là thay đổi Số liệu mô phỏng> Kích thước> thành Toàn màn hình iPad. Tất cả các quan điểm của tôi NGOẠI TRỪ cho một lỗi đã gây ra lỗi này, chúng tôi đã đặt thành Toàn màn hình iPad. Khi tôi thay đổi nó, lỗi đã biến mất ...


1

Lý do một số nhà phát triển không nhận được lỗi đã quay trở lại sau khi thay đổi từ "Hoa Kỳ" sang "en" (hoặc) khu vực khác, là do có sự khác biệt giữa chế độ xem "Danh sách tài sản" và "Mã nguồn". Có lẽ là lỗi Xcode. Bất cứ khi nào có sự không phù hợp giữa hai chế độ xem này sẽ gây ra lỗi này, bất kể đó là "en" hay "Tiếng Anh". Nếu bạn thay đổi thành "en" hoặc "Hoa Kỳ" cho cả hai chế độ xem giống nhau, sẽ khắc phục vấn đề.


1

Tôi đã nhận được lỗi này từ:

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

Vân vân

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:

tạo một dấu nhắc từ điển mới và:

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

và sau đó sử dụng lời nhắc trong các cuộc gọi cảnh báo của tôi. Điều đó đã khắc phục vấn đề.

Vì vậy, có vẻ như đó là một vấn đề thời gian.


Tôi sợ rằng nó chỉ hoạt động được một lúc và sau đó nó xuất hiện trở lại - vì vậy, bình luận ra trường hợp 1 và sau đó gọi cảnh báo đó sau đó dường như đã giải quyết được vấn đề.
Jeremy

0

với Xcode 8.1 và iOs 10 tôi cũng phải đối mặt

_BSMachError: (os / kern) khả năng không hợp lệ (20)

_BSMachError: (os / kern) tên không hợp lệ (15)

cố gắng ghi đè var UiTraiCollection để thay đổi trong thời gian chạy các lớp kích thước của iPad để có hai bố cục giao diện khác nhau trong Portston và Cảnh. Nó hoạt động mà không có sự cố nhưng tạo ra lỗi của chúng tôi.

Đây là mã "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
}

Các lỗi đã sử dụng override func viewWillTransition thay thế để phát hiện xoay giao diện.

Tôi hy vọng điều này sẽ hữu ích cho ai đó


0

Trong trường hợp của tôi, nguyên nhân của lỗi là do thay đổi kích thước. Được xây dựng trong IB. Bất cứ điều gì có thể thay đổi kích thước của một trường văn bản hoặc tương tự ví dụ thay đổi độ dài dòng có thể dẫn đến lỗi này tôi tin. Trong trường hợp của tôi, tôi chỉ cần điều chỉnh kích thước trường văn bản để bao quát tất cả các khả năng để không cần thay đổi kích thước hộp và xung đột với thứ khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.