ios - एक स्विफ्ट परियोजना के साथ कोकोपोड को एकीकृत कैसे करें?




objective-c xcode (4)

जैसे ही ऐप्पल ने अपनी नई प्रोग्रामिंग भाषा Swift शुरुआत की, मुझे आश्चर्य है कि आप इसे CocoaPods माध्यम से उपलब्ध मौजूदा उद्देश्य-सी पुस्तकालयों के साथ कैसे एकीकृत कर सकते हैं?


अगर आपको फ़ाइल मिल रही है तो आपके ब्रिजिंग-हेडर एच में त्रुटि नहीं मिली है, तो आप यह सुनिश्चित करना चाहेंगे कि आपकी बिल्ड योजना में आपकी पॉड लाइब्रेरी जुड़ी हो रही है।

CocoaPods समस्या निवारण खंड वर्णन करता है कि यह आइटम # 4 के अंतर्गत कैसे here


अब आप sudo gem install cocoapods चलाकर कोकोपोड्स 0.36.0 संस्करण का उपयोग कर सकते हैं जो त्वरित ढांचे को एकीकृत करने के लिए समर्थन करता है। जब आप तेजी से लिखे गए ढांचे का उपयोग करते हैं, तो आपको इसे स्पष्ट रूप से Podfile में उपयोग करना चाहिए:

platform :ios, '8.0'
use_frameworks!
pod 'Alamofire'

मेरे मामले में, मैंने पाया कि मैं मुख्य लक्ष्य में फली नहीं जोड़ रहा था, लेकिन here बताया गया है कि पॉडफाइल में केवल टेस्ट और टेस्टयूआई लक्ष्य ही here ।


Cocoapods 0.36 और ऊपर use_frameworks! प्रस्तुत करता है use_frameworks! निर्देश जो इंगित करता है कि स्विफ्ट में उद्देश्य-सी फली आयात करने के लिए ब्रिजिंग हेडर की आवश्यकता नहीं है।

कृपया MBProgressHUD और अलामोफ़ीयर का उपयोग करके एक पूर्ण उदाहरण नीचे खोजें :

1. Podfile

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

2. हटाना

यदि आपको इसकी आवश्यकता नहीं है तो अपने ब्रिजिंग हेडर से # आयात हटाएं या यहां तक ​​कि ब्रिजिंग हेडर फ़ाइल को हटाएं। यदि आप बाद की संभावना चुनते हैं, तो अपने एक्सकोड प्रोजेक्ट कॉन्फ़िगरेशन में पथ (इस हटाए गए ब्रिजिंग हेडर फ़ाइल में) को मिटाना न भूलें।

3. आयात जोड़ना

import MBProgressHUD और / या इन स्विफ्ट फ़ाइलों (एस) की आवश्यकता वाले प्रत्येक स्विफ्ट फ़ाइलों के शीर्ष पर import Alamofire

4. यदि आवश्यक हो तो enums को ठीक करें

अब आप सशक्त ढांचे का उपयोग कर रहे हैं, इसलिए आपके enums उड़ान में चले गए हैं! आपके पास स्विफ्ट की एक पंक्ति हो सकती है जो ब्रिजिंग हेडर के साथ ठीक था:

progressHUD.mode = MBProgressHUDModeIndeterminate

अब यह बनना है:

progressHUD.mode = MBProgressHUDMode.Indeterminate

एक सौदा बड़ा नहीं है, लेकिन त्रुटियों का ढेर आपको परेशान कर सकता है कि यदि आप बहुत सारे उद्देश्य-सी enums का उपयोग कर रहे हैं तो आप की तुलना में एक बड़ी समस्या है।

( इस उत्तर का स्रोत )

आपकी जानकारी के लिए: मुझे लगता है (आपको सुनिश्चित करने के लिए स्वयं को परीक्षण करना होगा) कि use_frameworks! आपके पॉडफाइल में निर्देश केवल आईओएस> = 8 को लक्षित करने वाली एक्सकोड परियोजनाओं के साथ संगत है।





cocoapods