2015-08-07 54 views
60

Có cách nào tôi có thể sử dụng CocoaPod được viết trong Objective C trong dự án Swift của tôi bằng cách sử dụng nhanh không?Làm thế nào để sử dụng Objective-C Cocoapods trong một dự án Swift?

Tôi có tạo tiêu đề bắc cầu không? Và nếu có, tôi có thể truy cập vào các đối tượng, các lớp và các trường được định nghĩa bởi các thư viện trong CocoaPod trong Swift không?

Có rất nhiều CocoaPod tốt ra khỏi đó được viết trong Mục tiêu C. Tôi chỉ biết Swift, và tôi tự hỏi nếu có một cách để tôi vẫn sử dụng những CocoaPods.

Trả lời

128

Câu trả lời cơ bản cho câu hỏi của bạn là Có, bạn có thể sử dụng mã khách quan c được tạo bằng CocoaPod.

Câu hỏi quan trọng hơn là "Cách sử dụng libs như vậy?"
Câu trả lời cho câu hỏi này tùy thuộc vào use_frameworks! cờ trong số Podfile:
Hãy tưởng tượng rằng bạn muốn sử dụng nhóm Objective-C có tên CoolObjectiveCLib.

Nếu tập tin pod của bạn sử dụng use_frameworks! cờ:

// Podfile 
use_frameworks! 
pod 'CoolObjectiveCLib' 

Sau đó, bạn không cần thêm bất kỳ tập tin tiêu đề cầu.
Tất cả những gì bạn cần là khung nhập khẩu trong tập tin nguồn Swift:

// MyClass.swift 
import CoolObjectiveCLib 

Bây giờ bạn có thể sử dụng tất cả các lớp học đó được thể hiện trong lib.

Nếu tập tin pod của bạn không sử dụng use_frameworks! cờ:

// Podfile 
pod 'CoolObjectiveCLib' 

Sau đó, bạn cần tạo cầu nối tập tin header và nhập khẩu có tất cả các tiêu đề Objective-C cần thiết:

// MyApp-Bridging-Header 
#import "CoolObjectiveCLib.h" 

Bây giờ bạn có thể sử dụng tất cả các lớp được xác định trong tiêu đề đã nhập.

+0

cách truy cập các lớp học nhanh từ các tệp .m bên trong nhóm (trong trường hợp tôi muốn tùy chỉnh các nhóm này)? – JAHelia

+1

Tôi đã sử dụng các tập tin use_frameworks trong tập tin podfile của dự án nhanh chóng và muốn sử dụng nhóm Toast, thực sự là một danh mục khách quan-c. Bởi chỉ cần viết nhập UIView + Toast đã cho tôi lỗi biên dịch: Các câu lệnh liên tiếp trên một dòng phải được phân tách bằng ';' –

+0

@ChanchalRaj là tên "UIView + Toast' cho nhóm của bạn? Nếu không cố gắng sử dụng khung nhập khẩu đặt tên phù hợp với tên nhóm của bạn. –

0

Bạn chỉ cần một tiêu đề bắc cầu và nhập vào đó những gì bạn cần.

0

Trong podFile sử dụng cờ use_frameworks! Bên trong Xcode trong cấu trúc thư mục Pod trong phụ thuộc, bạn thêm xxxxxxx-umbrella.h vào Tệp hỗ trợ.

Trong {PROJECT_NAME}-Bridging-Header.h sử dụng của bạn:

#import "xxxxxxx/xxxxxxx-umbrella.h" 

Nó làm việc cho tôi.

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