Tôi đã cố gắng để kiểm tra CocoaPods thiết lập khung mới để có được một số Pods đi và tôi gặp rắc rối khi sử dụng Swift trong dự án Objective-C của tôi.Làm thế nào để nhập và sử dụng Swift Pod Framework trong Objective-C Project
Trước tiên, đây là CocoaPods prerelease 0,35, bạn có thể đọc về cách sử dụng và cài đặt nó here.
Dưới đây là Podfile hiện tại của tôi:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'MBProgressHUD'
pod 'SLPagingViewSwift'
MBProgressHUD là một chỉ số quay thông thường, và SLPagingViewSwift là một dự án ngẫu nhiên tôi thấy bằng cách gõ Swift vào tìm kiếm cocoapods. Đây là ViewController.m
Trong dự án của tôi:
#import "ViewController.h"
@import SLPagingViewSwift;
@import MBProgressHUD;
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// Works just fine
MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:hud];
[hud show:YES];
// Causes Error -- Won't build
SLPagingViewSwift *sl = [[SLPagingViewSwift alloc] init];
}
@end
Dưới đây là các SLPagingViewSwift
khai:
class SLPagingViewSwift: UIViewController, UIScrollViewDelegate {
Như bạn có thể thấy, nó được thừa hưởng từ UIViewController
, vì vậy nó không phải là một vấn đề để chỉ phân bổ nó và khởi tạo nó. Nếu tôi thêm tệp một cách riêng biệt như một tệp, thì mã trên chỉ chạy tốt. Tôi biết nó hoạt động.
tl; dr
Làm thế nào tôi có thể sử dụng một Swift Khung tinh khiết tạo ra bởi CocoaPods trong một lớp học Objective-C tinh khiết?
xử lý sự cố
Chủ yếu là tôi đã cố gắng nhập khẩu khác nhau. Apple khuyến cáo các @import
phong cách here
Nhưng tôi đã cố gắng nhiều giống khác:
// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>
// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"
Tôi cũng đã cố gắng một vài thư viện Swift khác bất cứ lúc nào để xem nếu tôi có thể làm bất cứ điều gì nhấp chuột.
Tôi không thấy bất kỳ điều gì về các vấn đề của Cocoapod có thể giúp ích cho việc này, tôi cũng không tìm thấy bất kỳ nội dung nào trong blog/nội dung phát hành của họ.
Note
Nếu tôi thêm các tập tin SLPagingViewSwift.swift
riêng cho dự án theo cách cũ thời, nó hoạt động tốt.
Từ những gì tôi hiểu, bạn luôn có thể chuyển từ Objc sang Swift, nhưng không phải luôn luôn theo cách khác vì Swift có các tính năng ngôn ngữ đơn giản không tồn tại trong Objc ... –
@EdgarAroutiounian - Bạn đúng trong một số khía cạnh , nhưng với loại lớp này, nó không phải là một vấn đề bởi vì nó kế thừa từ một lớp ObjC. Ngoài ra, nếu tôi chỉ thêm tệp, đoạn mã trên của tôi sẽ được tạo và chạy tốt. (xem cập nhật) – Logan
Câu hỏi của bạn thực sự đã giúp tôi rất nhiều, tôi đã cố gắng thêm FacebookSDK với cụm ca cao và gặp lỗi khi cố biên dịch, "nhập khẩu FacebookSDK" đã thực hiện mẹo –