Elma tanıtılan gibi Swift , yeni bir programlama dili, sana yoluyla ulaşılabilir mevcut Objective-C kütüphaneleri ile entegre edebilirsiniz acaba CocoaPods ?
Yanıtlar:
Cocoapods 0.36 ve üzeri , Swift'dekiuse_frameworks!
Objective-C bölmelerini içe aktarmak için köprüleme başlığının gerekli olmadığını ima eden talimatı sunar.
Lütfen MBProgressHUD ve Alamofire kullanan tam bir örneği aşağıda bulabilirsiniz :
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.3'
use_frameworks!
pod 'Alamofire', '>= 1.2.2' # Swift pod
pod 'MBProgressHUD', '>= 0.9.1' # Objective-C pod
#İmports'u köprüleme başlığınızdan kaldırın veya ihtiyacınız yoksa köprüleme başlık dosyasını silin. İkinci olasılığı seçerseniz, Xcode proje yapılandırmanızdaki yolu (bu silinmiş köprü başlık dosyasına) silmeyi unutmayın.
Bu sınıf (lar) a ihtiyaç duyan her Swift dosyasının üstüne import MBProgressHUD
ve / veya import Alamofire
üstüne ekleyin .
Artık gerçek çerçeveler kullanıyorsunuz, bu nedenle numaralarınız hareket halindeyken hareket etti! Aşağıdaki gibi köprüleme başlığı ile iyi olan bir Swift hattınız olabilir:
progressHUD.mode = MBProgressHUDModeIndeterminate
Artık şuna dönüşmesi gerekiyor:
progressHUD.mode = MBProgressHUDMode.Indeterminate
Büyük bir anlaşma değil, ancak bir yığın hata sizi, çok sayıda Objective-C numaralandırması kullanıyorsanız, sahip olduğunuzdan daha büyük bir sorunla karşı karşıya bırakmanıza neden olabilir.
Bilginiz için: Sanırım (emin olmak için kendi kendinize test etmeniz gerekecek) use_frameworks! Podfile dosyanızdaki talimat yalnızca iOS> = 8'i hedefleyen Xcode projeleriyle uyumludur.
Görünüşe göre süreç Swift'i Cocoa ve Objective-C dokümantasyonunun Karıştır ve Eşleştir bölümünde anlatılana benzer .
pod install
.Example-Bridging-Header.h
ve bunu projeye ekleyin.Objective-C Bridging Header
Hedefiniz için ayarlayın :Artık kitaplığınızı, bu durumda MKUnits'i Swift dosyanızda kullanabilirsiniz:
let kilograms = NSNumber.mass_kilogram(2)()
let pounds = NSNumber.mass_pound(10)()
let result = kilograms.add(pounds)
println(result)
Daha fazlası burada: Cocoapod'ları bir Swift projesiyle entegre etme
#import <Reachability/Reachability.h>
yerine proje dizinini içermesi gerekiyordu #import "Reachability.h"
.
GÜNCELLEME : CocoaPods 0.36 kararlı sürümü yayınlandı. Resmi olarak Swift'i destekliyor.
CocoaPods artık Swift'i en son 0.36 sürümünde destekliyor. Hala beta sürümünde ama çalışıyor.
Öncelikle, Terminalinizde çalıştırarak CocoaPods beta'yı (şu anda beta 2) kurmanız gerekir.
sudo gem install cocoapods --pre
Hepsi bukadar. Normalde yaptığınız gibi Swift kitaplıkları ekleyebilirsiniz.
Ancak Objective-C'de yazılmış bir kitaplığı CocoaPods aracılığıyla bir Swift projesine eklemek istiyorsanız bir sorun var. Satırı use_frameworks!
Pod Dosyanıza eklemeniz gerekir . İşte bir örnek.
use_frameworks!
platform :ios, '8.0'
pod 'MagicalRecord'
Bununla ilgili bir blog yazısı da yazdım .
use_frameworks!
sadece iOS için> = 8 değil mi? Eğer öyleyse, bunu cevabınıza yazmalısınız.