Tôi đang viết một ứng dụng iOS trong Swift và tôi đang cố gắng tìm hiểu cách tổ chức dự án thành các mô-đun riêng biệt. Tôi đang sử dụng một kiến trúc MVVM, và tôi muốn làm cho các thành phần Model, ViewModel và View tách các mô-đun Swift riêng biệt mà chỉ làm cho các tập con của chúng có thể truy cập được vào các mô-đun nhập chúng. Các tệp trong Chế độ xem sẽ nhập ViewModel và các tệp trong ViewModel sẽ nhập Mô hình. Làm thế nào tôi có thể thực hiện điều này? Lưu ý rằng tôi không cố tạo các thư viện mà nhiều ứng dụng có thể chia sẻ. Tôi chỉ cố gắng thực thi việc tách các thành phần bằng cách sử dụng các mô-đun.Chia các thành phần của ứng dụng Swift thành các mô-đun Swift
EDIT: Có thể câu hỏi là, "Tôi nên sử dụng cơ chế nào để tạo mô-đun ngoài mô-đun đi kèm với dự án ứng dụng iOS ban đầu?"
Một trong những câu trả lời trong "Cách bạn sử dụng Không gian tên trong Swift?" https://stackoverflow.com/a/24032860/215400 cho biết, "các lớp (v.v.) được ngầm hóa bởi mô-đun (đích Xcode) mà chúng đang ở." Từ đó, người ta có thể kết luận rằng các mục tiêu tương ứng với các mô-đun và câu trả lời là tạo ra các mục tiêu riêng biệt trong một dự án Xcode, nhưng tôi đã thử trước đó và tskulbru đang nói rằng tôi cần nhiều dự án Xcode.
Về nhiều dự án Xcode, tùy chọn Tệp> New> Project> iOS Framework & Library> Cocoa Touch Framework không đúng vì nó được sử dụng cho những thứ sử dụng UIKit và hai mô-đun tôi muốn tạo không nên phụ thuộc vào UIKit. Tùy chọn "Khung & Thư viện" khác, thư viện tĩnh Cocoa Touch, không phải là một tùy chọn với Swift.
Bài đăng StackOverflow khác được đề cập bằng cách sử dụng Pod riêng tư. Sau khi dành một giờ làm việc trên đó, tôi kết luận rằng đó không phải là giải pháp đúng vì tôi không cần phải chỉnh sửa các mô-đun này trong các không gian làm việc khác nhau.
Bản sao có thể có của [Làm thế nào để bạn sử dụng Không gian tên trong Swift?] (Http://stackoverflow.com/questions/24002821/how-do-you-use-namespaces-in-swift) – tskulbru
Tại sao không sử dụng 'riêng tư 'vòng loại để thực thi đóng gói? –
@ Marc - Cảm ơn, nhưng làm cho mọi thứ riêng tư đối với các tệp mà chúng được xác định không phải là thứ tôi muốn. Công khai so với truy cập nội bộ mà Mô-đun cung cấp (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html) chính xác là những gì tôi muốn. –