2015-12-09 26 views
5

Tôi đang chạy OS X Mavericks trước đây với Xcode 7.1, tôi vừa cập nhật lên OS X El Capitan và Xcode 7.2. Ứng dụng của tôi đã khởi chạy tốt trên trình mô phỏng và thiết bị mà không có bất kỳ cảnh báo nào cho bảng phân cảnh. Bây giờ tôi thấy một loạt các cảnh báo cho thiếu những hạn chế trong storyboard và treo ứng dụng với lỗi này:Di chuyển dự án sang Xcode 7.2 trên OS X El Capitan ngắt đoạn mã xây dựng

Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInvalidUnarchiveOperationException', lý do: 'Không thể khởi tạo lớp có tên IBNSLayoutConstraint'

Tôi cũng đã thử giải pháp được đăng tại đây: Could not instantiate class named IBNSLayoutConstraint

Tôi không thể tìm thấy trình giữ chỗ = "CÓ" ở bất kỳ đâu trong xml và bảng phân cảnh của tôi quá lớn để thực sự trải qua từng ràng buộc để xem liệu tôi có nhầm lẫn không bật hộp kiểm Trình giữ chỗ cho bất kỳ hạn chế.

Tôi thấy các cảnh báo sau khi xem xml của bảng phân cảnh.

enter image description here

+0

@SandyChapman: Tôi xin lỗi, tôi không hiểu. Bạn có thể vui lòng xây dựng? – EmbCoder

+0

@SandyChapman: http://pastebin.com/NxAdh3q7 – EmbCoder

+0

tôi có cùng một vấn đề trong một trong các dự án của tôi .. không thể tìm ra lý do tại sao .. tôi hoàn nguyên về 7.1.1 –

Trả lời

4

Bạn đang thực tế không sử dụng Bảng phân cảnh, nhưng là Xib. Trong tập tin của bạn, bạn sẽ tìm thấy các phần như sau:

<mask key="constraints"> 
    <exclude reference="6fq-cy-xp8"/> 
</mask> 

Bạn sẽ muốn mở của bạn .xib là "Source Code" và loại bỏ những cái mà những hạn chế trở thành installed.

+0

Điều đó đã hoạt động! Tôi không hiểu liệu họ có luôn ở đó hay không hoặc liệu họ có được thêm vào trong khi di chuyển hay không. Bạn có biết nếu bất cứ điều gì có thể được thực hiện trong IB để đảm bảo nó không xảy ra một lần nữa? – EmbCoder

+1

Thông thường điều này không xảy ra trừ khi bạn đánh dấu vào ô đánh dấu trong IB để vô hiệu hóa trạng thái "đã cài đặt". –

1

Chọn Bảng phân cảnh Tắt Lớp kích thước giải quyết được sự cố của tôi. Hy vọng điều này sẽ giúp bạn! Cảm ơn Sau khi xây dựng dự án của bạn, bạn có thể bật lại lớp kích thước một lần nữa.

enter image description here

+1

Đó không phải là điều cơ bản giống như nói, "phá hủy giao diện người dùng của bạn và sau đó xây dựng lại nó"? Các ứng dụng có giao diện người dùng lớn sẽ mất hầu hết tất cả cấu hình lớp kích thước của chúng bằng cách tắt các lớp kích thước. Điều này xung quanh công việc thực sự chỉ nên được coi là một lựa chọn "hạt nhân" như là một phương sách cuối cùng. –

0

cũng chủ yếu là đảm bảo rằng khi bạn đang sử dụng IB để kiểm tra xem bạn không có bất kỳ trở ngại với “cài đặt” kiểm tra hộp kiểm nếu xem họ thuộc về là “chưa được cài đặt ”. Xcode 7.1 thậm chí không đưa ra cảnh báo về điều này, nhưng 7.2 gây ra sự cố

+0

Đối với mỗi ràng buộc trên bảng phân cảnh, ít nhất một hộp kiểm "đã cài đặt" được chọn theo mặc định. Tôi không biết làm thế nào mà các công trình hoặc các hộp kiểm khác nhau có nghĩa là gì nhưng họ dường như không gây ra bất kỳ vấn đề. – EmbCoder

0

DisableAutoLayout trên bảng phân cảnh của bạn. Điều này sẽ khắc phục vấn đề của bạn.

Các vấn đề liên quan