IB Designables: Không cập nhật được trạng thái bố cục tự động: Không tải được các chỉ định từ đường dẫn (null)


76

Tôi gặp lỗi này cho XIB. Nhưng mọi thứ khác được biên dịch và dường như không có bất kỳ tác hại nào gây ra bởi lỗi này. Đây có phải là điều tôi cần lo lắng? Vấn đề ở đây là gì và tôi sẽ khắc phục sự cố này như thế nào?

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

CẬP NHẬT: Tôi đã cập nhật cocoapods lên phiên bản mới nhất (0.36.3) và trong khi điều đó đã khắc phục sự cố cho một vài biên dịch, lỗi đã quay trở lại và hiện tôi đang gặp lỗi bổ sung:

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


Câu trả lời:


77

Đó là một vấn đề đã biết trong CocoaPods. Nó đã được sửa trong phiên bản 0.36.1 . Chỉ cần cập nhật CocoaPods của bạn và sau đó thêm dòng mã cụ thể vào tệp pod của bạn: use_frameworks! sau nền tảng: ios, '7.0'

Vì vậy, tệp của bạn sẽ giống như sau:

platform :ios, '7.0'

use_frameworks!

/// here will be dependencies etc. ///

đã cập nhật:

Danh sách đầy đủ các bước để giải quyết vấn đề một lần và mãi mãi:

  • Đóng dự án;
  • Mở ứng dụng đầu cuối;
  • Cập nhật chính CocoaPods lên phiên bản. 0,36.1 trở lên;
  • Điều hướng đến thư mục dự án của bạn trong Terminal;
  • Gõ: pod update;
  • Mở dự án của bạn trong xCode;
  • Dự án sạch;
  • Xây dựng lại dự án.

2
Trên thực tế, chỉ cần cập nhật cocoapods dường như đã làm được điều đó đối với tôi. Tôi ngạc nhiên cocoapods đã đem lại cho tôi một lỗi trong một XIB không liên quan nhưng cho nó đi ...
Oren

1
Tôi lấy lại cái đó. Lỗi đã trở lại. Tôi đã thực hiện các thay đổi bổ sung mà bạn đề xuất và lỗi vẫn còn và hiện tôi cũng nhận được nhiều cảnh báo O-link về iOS8
Oren

2
Đã thử điều đó nhiều lần. không may mắn
Oren

1
Bạn đúng. Tôi đang tham chiếu TTTAttributedLabel trong XIB của mình. Ngay sau khi tôi xóa, lỗi sẽ biến mất. Nếu tôi đặt nó trở lại, lỗi sẽ trở lại. Tôi không chắc mình có thể làm gì với điều đó bây giờ nhưng ít nhất tôi biết nguyên nhân. Cảm ơn bạn đã giúp đỡ!
Oren

1
Tôi vừa thêm "use_frameworks!" và mọi thứ bắt đầu hoạt động tốt với FSCalender. Cảm ơn
Zulqarnain

32

Sau khi thực hiện một số nghiên cứu và đào sâu, tôi có thể xác nhận rằng không có cách nào để giải quyết vấn đề này.

Đây là lỗi của Xcode.

Đó là tất cả. Chúng tôi phải chờ cập nhật.

Chỉ cần khởi động lại Xcode ngay bây giờ.


8
đúng. đối với tôi, nó không liên quan gì đến quả ca cao, nó luôn xảy ra với chỉ định IB của riêng tôi. thử tất cả mọi thứ ...
benjamin.ludwig

2
Đây là phiên bản Xcode nào? Tôi đang sử dụng 7.1.0, tôi vẫn có nó
CalZone

2
Tôi đang sử dụng Xcode 8.0, vấn đề này vẫn chưa được giải quyết.
Statik

4
Trình tạo giao diện rất chậm và nhiều lỗi. Hầu như không thể sử dụng cho thiết kế Thành phần. Có, nó vẫn giống nhau trong Xcode 8.0. Tôi nghĩ một trong những lý do quan trọng nhất khiến tôi thích phát triển ios hơn là phát triển android là công cụ IDE tốt hơn nhiều. Apple đã làm rất tệ trong công cụ xcode của họ. Nó ngày càng trở nên tồi tệ hơn !!!
Bagusflyer

3
Tôi đang sử dụng Xcode 8.2 và nó vẫn như vậy sau 1,5 năm. Không thể tin được.
Can Poyrazoğlu

17

Điều này đã làm việc cho tôi:

  1. xóa dữ liệu bắt nguồn (tùy chọn> vị trí)
  2. khởi động lại Xcode
  3. dự án sạch (sản phẩm> sạch)

Nó hoạt động! Có vẻ như kết xuất bộ nhớ cache DerivedData là cách để thực hiện, tôi thậm chí không cần phải dọn dẹp dự án.
Apophenia Overload

Yup, điều đó đã làm điều đó cho tôi.
dùng1366265

4
Vấn đề sẽ trở lại một lần nữa chắc chắn. Đây là lỗi Xcode.
Bagusflyer

13

Năm 2016 là năm, xCode 7.3.1: Tôi gặp lỗi này. (Dùng quả ca cao 1.0 nhưng không thành vấn đề)

NGUYÊN NHÂN: một lớp con UILabel đặc biệt đã được sử dụng trong IB. rung chuông?

GIẢI PHÁP THANG:

1: Phân lớp TTTAttributedLabel hoặc FXLabel hoặc bất cứ thứ gì bạn có. Sử dụng điều đó trong IB.

2: Thêm các dòng này vào tệp .h được phân lớp con:

#ifndef IB_DESIGNABLE
#define IB_DESIGNABLE
#endif

@class LabelFromPod;


IB_DESIGNABLE @interface YourLabel : LabelFromPod {
 ...
}

3: sau đó tôi nghĩ bạn phải xóa dự án, thoát xCode, xây dựng lại (giao thức hoảng sợ xCode thông thường) và vấn đề sẽ biến mất.

CẬP NHẬT 2017 xCode 8.2.1: Mọi thứ trở nên tồi tệ hơn :( Vấn đề VC trống: IB thậm chí không tải các phần tử giao diện người dùng cho bộ điều khiển chế độ xem có các IB_DESIGNABLE này. Tôi không hiểu :)


1
Các lỗi vẫn sẽ xảy ra ngẫu nhiên. Thoát Xcode sẽ khắc phục được sự cố.
keithyip

Kudos để xác định chính xác sự cố @Jaro Mặc dù tôi đã thêm các câu lệnh ifndef nhưng vẫn còn đó. Xóa, Bỏ, Xây dựng lại sẽ giúp ích. nhưng nó vẫn là một lỗi trong xcode. Và apple nên sửa nó.
Ashish Pisey

9

Tôi đã gặp phải vấn đề tương tự khi sử dụng TTTAttributedLabel và làm theo câu trả lời của Andrey để cố gắng khắc phục nó. Quá trình xây dựng thành công nhưng sau đó có vẻ như không thể tải các tệp gói của mô-đun nhóm khác (TSMessage, SVProgressHUD trong trường hợp của tôi). Điều này cũng được nêu trong bài đăng trên blog Cocoapods và tôi không muốn di chuyển tài nguyên gói sang Nhóm chính (và tôi chưa xác minh xem điều này có hoạt động hay không.)

Do đó, tôi chọn loại bỏ TTTAttributedLabel khỏi Podfile và chỉ bao gồm nguồn trực tiếp để loại bỏ lỗi đó. Điều này phù hợp với tôi và tôi hy vọng nó cũng là một câu trả lời khác cho vấn đề này.


Chỉ có câu trả lời hữu ích cho tôi.
bisma

1
Tôi cũng đang sử dụng TTTAttributedLabel. Như một giải pháp thay đổi tạm thời trở lại lớp thành UILabel cho TTTAttributedLabels, thực hiện thay đổi Bố cục Tự động của tôi, sau đó đặt lại các lớp. Khá khó chịu nhưng nó đã hoạt động.
Ben Kane

7

Có thể muộn, nhưng việc thêm các mã này để khởi chạy đã hiệu quả với tôi khi tôi gặp sự cố này

required override init(frame: CGRect) {
    super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

Điều này đã làm được! Trời đất, tôi đã phát điên khi không thể thoát khỏi lỗi đó!
livingtech

3

Tôi gặp sự cố tương tự khi sử dụng chế độ xem tùy chỉnh từ POD trên bảng phân cảnh.

Thực hiện những điều sau đây đã khắc phục sự cố cho tôi

  • Thêm dòng sau (Để bật POD trong khung động) trên nhóm use_frameworks!
  • Làm pod update
  • Khởi động lại Xcode

3

Trong Podfilethêm kịch bản này ở cuối và thực hiện pod installmột lần nữa.

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end

1

Cập nhật cocoapods trong Mac, với lệnh sau đã giải quyết được một phần vấn đề này cho tôi:

sudo gem install cocoapods

1

Vấn đề có thể là bạn đã sử dụng khung hoặc lớp Nhãn tùy chỉnh. như MarqueLabel hoặc TTTAttributed Label. Bỏ ghi chú #use_frameworksbên trong tệp pod. Chạy đi pod update. Làm sạch và xây dựng lại dự án của bạn. Điều này sẽ giải quyết vấn đề của bạn.


1

Tôi đã gặp một lỗi tương tự, khi tôi đang sử dụng Cocoapodsvà không thể use_frameworks!. Tôi đã kết thúc bởi forking một khuôn khổ, mà sử dụng IBDesignableIBInspectablevà loại bỏ các từ khóa này. Tất cả các tùy chỉnh được thực hiện theo chương trình:

class CardFloatingLabelTextField: SkyFloatingLabelTextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.errorMessage = nil
        self.titleFont = UIFont.systemFont(ofSize: 11)
        self.titleFormatter = { (text: String) in return text }
        self.titleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.selectedTitleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.lineColor = UIColor.channelsColorGrayContentAndLines()
        self.selectedLineColor = UIColor.channelsColorDarkBlue()
        self.lineHeight = 1
        self.selectedLineHeight = 1

    }

}

Nó hoạt động và không tạo ra lỗi trong Trình tạo giao diện nữa. Tuy nhiên, thật đáng tiếc, tôi đã phải thực hiện cách giải quyết này.


1

Xóa những gì bạn có trong Podfile và chỉ bao gồm nguồn trực tiếp để khắc phục sự cố này.

Nó hoạt động cho tôi!


1

Tôi đã gặp phải vấn đề này khi cả lớp cơ sở và lớp con đều được đề cập là lớp @IBDesignable. Có thể được kiểm tra với lớp của bên thứ ba và lớp của bạn nếu nó được kế thừa

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.