2014-10-19 12 views
6

Tôi đang tìm một cách để có thể sản xuất các khung công tác, trong đó có các khuôn khổ phụ, không ảnh hưởng lẫn nhau trong thời gian chạy. Hình minh hoạ minh họa dưới đây mô tả ý tưởng tốt nhất.Khung hình tổ hợp Cocoa Touch

enter image description here

Giả sử mỗi phiên bản của khuôn khổ JSON Parser là không tương thích với người kia.

Tôi đã thử một tấn phương pháp tiếp cận để đạt được điều này, nhưng không thành công mỗi lần. Một trong những hứa hẹn nhất là khung ô, nhưng không chỉ Apple không khuyến khích sử dụng của họ (nó không rõ ràng với tôi tại sao), nhưng cũng có vẻ họ không làm việc như mong đợi.

gì sẽ xảy ra là, nếu tôi tạo ra một ứng dụng với một nhúng Khung Một mà chính nó có JSON Parser khuôn khổ v1.0 nhúng, tất cả dường như chỉ làm việc tốt. Nhưng ngay sau khi tôi thêm JSON Parser khuôn khổ v3.0 để App và liên kết các ứng dụng chống lại nó, Khung Một bắt đầu sử dụng JSON Parser khuôn khổ v3.0 khi chạy thay vì v1.0 mà nằm bên trong nó. Và giả sử chúng không tương thích với nhau, điều này có thể phá vỡ Framework A.

Tương tự, hãy thêm Framework B nhưng triển khai nào được chọn trong thời gian chạy dường như là ngẫu nhiên.

Có thể tạo Framework A có khung JSON Parser nhúng v1.0 và an toàn để sử dụng trong trường hợp như vậy không? Tôi thấy khó để tin rằng không có cách nào để đạt được điều đó, nhưng tôi không thể tìm thấy một cách để có được nó để làm việc, và bắt đầu tự hỏi nếu đó là trong thực tế có thể :(

+0

trên khung người nhận Tôi chưa tìm thấy 'tệp nhị phân được nhúng 'chỉ trong ứng dụng người nhận, bạn đã giải quyết vấn đề này như thế nào? Tôi muốn làm 'ứng dụng

Trả lời

2

Bạn không đưa ra nhiều chi tiết về làm thế nào bạn xây dựng khung công tác của mình, vì vậy đây chỉ là một ảnh trong bóng tối

Tôi giả định rằng bạn đã nhúng khung "Cài đặt tên thư viện cài đặt thư viện động" được đặt thành @rpath. từ cài đặt "Đường dẫn tìm kiếm đường dẫn" (đây là ứng dụng và đó là lý do tại sao nó tìm thấy khung "toàn cầu" trước). Điều này sẽ làm cho mọi thứ hoạt động như bạn mong đợi. Cách tiếp cận er bạn có thể tính đến là gói 3 phiên bản của khung mà bạn đang sử dụng trong một single framework bundle.

Cuối cùng, bạn cũng có thể xem xét việc liên kết theo cách thủ công (xem this post, trong đó phương thức _loadPluginAtLocation được xác định).

Hy vọng điều này sẽ hữu ích.

+0

cảm ơn các đề xuất! Tôi sẽ xem xét điều đó ngay sau khi tôi có thời gian. Ngoài ra, trừ khi tôi tìm thấy một giải pháp trong câu trả lời của bạn, tôi sẽ chuẩn bị một dự án mẫu để chứng minh những gì tôi đang cố gắng đạt được và cách tiếp cận của tôi. –

+0

một dự án mẫu sẽ là tuyệt vời để khắc phục sự cố này ... nhưng tôi hy vọng bạn có thể khắc phục bằng cách sử dụng cài đặt bản dựng ... – sergio

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