2015-11-16 15 views
9

Bối cảnh: Tôi bắt đầu dự án thử nghiệm Swift để hiểu và mở rộng kiến ​​thức của tôi về cách triển khai CoreData vào các dự án của tôi. Và tất nhiên bất cứ khi nào tôi chỉ thử nghiệm và chơi xung quanh với mã, tôi luôn luôn nhận được sidetracked và dường như gặp khó khăn về một số chủ đề tiếp tuyến. Điều này bây giờ là khi cần thiết bạn trực tiếp liên kết một Khung hoặc Thư viện với một dự án XCode.Khi nào bạn phải liên kết Khung và Thư viện với dự án XCode?

Vì vậy, làm thế nào điều này đã ... Tôi đang tạo các lớp con của NSManagedObject mà tôi phải (viết) import CoreData trong tệp Swift của mình. Và mọi thứ dường như hoạt động hoàn hảo; không có lỗi, cảnh báo, vv Tuy nhiên khi tôi kiểm tra khung và thư viện nào được liên kết với dự án của tôi trong "danh sách dự án và mục tiêu" của tôi thì không có danh sách nào được liệt kê. Sau đó tôi nhận ra điều đó xảy ra khi bạn phải import UIKit. Rõ ràng là có tùy chọn để liên kết trực tiếp các khung công tác này nhưng dường như không cần phải làm như vậy. Vì vậy, với câu hỏi của tôi, có những khung công tác mặc định không cần phải liên kết rõ ràng với các dự án XCode không, hoặc cuối cùng tôi sẽ liên kết các khung công tác này khi tôi gói dự án của mình để triển khai chưa? Không. Và nếu đây không phải là trường hợp, từ một quan điểm rộng hơn, khi nào cần thiết phải liên kết rõ ràng các Khung và Thư viện với một dự án XCode?

Sửa ***

Nếu tất cả các khuôn khổ của Apple đã tự động liên kết .... là Sau đó, những gì điểm của việc có họ sẵn để thêm vào dự án của bạn. (Tâm trí bạn, CoreData.framework đã không ban đầu liên kết một cách rõ ràng như nó là trong hình.)

Project Settings

+0

Tất cả các khung công tác của apple được liên kết tự động và bạn chỉ cần nói 'nhập trong các nguồn của bạn để sử dụng chúng. Bất kỳ bên thứ ba nào khác mà bạn cần phải liên kết rõ ràng và nhúng vào dự án của bạn. – Shripada

+0

Vậy thì đâu là điểm để họ có sẵn liên kết rõ ràng trong cài đặt dự án của bạn? – Yonny

+1

các khung là một phần của môi trường iPhone, nhưng có rất nhiều trong số đó và phần lớn sẽ không được dự án của bạn cần trực tiếp. cho mỗi thư viện bạn nói rõ ràng bạn sẽ sử dụng, thư viện phải được tải và diễn giải sử dụng một số tài nguyên hệ thống –

Trả lời

8

Không có ma thuật xảy ra.

Điều này là do mô-đun và liên kết tự động được giới thiệu bởi Xcode (LLVM).
(từ khóa có liên quan: @import thay vì #import và tùy chọn cài đặt dựng như Bật mô-đun, khung liên kết tự động, theo mặc định, được đặt thành CÓ cả hai). enter image description here

Tự động, hai kết hợp từ khoá này (mô-đun, tự động liên kết cờ) cố gắng tìm và thêm bất kỳ khung liên quan nào có hỗ trợ mô-đun.

Khi được giới thiệu từ Xcode 5 (thực tế, LLVM và trình biên dịch clang front-end), nội bộ, LLVM với cài đặt dự án mặc định ở trên đã sử dụng hệ thống mô-đun để tự động liên kết bất kỳ khung nào trong mã thông qua @ import/# import statements .

Khi các khung công tác được liên kết tự động với điều đó, nhà phát triển không cần phải đặt chúng trong các Khung được Liên kết & Thư viện nữa.

Vì vậy, Đó là lý do tại sao hệ thống khung công tác của Apple (khung công tác mặc định) không cần phải được liên kết rõ ràng với các dự án Xcode.

Vì mô-đun có sẵn trong Xcode, không cần phải tiếp tục nhập tất cả danh sách khung hệ thống trong tệp .pch (tiêu đề tiền tố được biên dịch trước.) Vì vậy, đó là lý do tại sao thiết lập pch được đặt thành NO và không cần thiết theo mặc định đằng sau cảnh.

Giới hạn, theo như tôi biết cho đến nay, chúng chỉ có sẵn cho khung hệ thống của Apple cho đến bây giờ, nghĩa là nó không thể áp dụng cho khung công tác người dùng và các thư viện C/C++ khác.

Hy vọng điều đó sẽ hữu ích.

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