objective c - उद्देश्य-सी परियोजना में स्विफ्ट पॉड फ्रेमवर्क का आयात और उपयोग कैसे करें




objective-c swift (2)

मैं कुछ फली जा रहा है और मैं अपने उद्देश्य सी परियोजना में स्विफ्ट एक का उपयोग करने में परेशानी हो रही है कोकोआ नई फ्रेम सेटअप जांच करने की कोशिश कर रहा हूँ।

सबसे पहली बात, यह CocoaPods prerelease 0.35 है, आप इसे here उपयोग और स्थापित करने के बारे में पढ़ सकते हैं।

यहाँ मेरा वर्तमान पॉडफाइल है:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

pod 'MBProgressHUD'
pod 'SLPagingViewSwift'

MBProgressHUD एक सामान्य कताई संकेतक है, और SLPagingViewSwift एक यादृच्छिक परियोजना है जिसे मैंने स्विफ्ट को कोकोपोड्स खोज में टाइप करके पाया है। यहाँ ViewController.m मेरी परियोजना में है:

#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

यहाँ SLPagingViewSwift घोषणा है:

class SLPagingViewSwift: UIViewController, UIScrollViewDelegate {

जैसा कि आप देख सकते हैं, यह UIViewController से विरासत में मिला है, इसलिए इसे सिर्फ आवंटित करना और इसे प्रारंभ करना एक समस्या नहीं होनी चाहिए। यदि मैं फ़ाइल को केवल एक फ़ाइल के रूप में अलग से जोड़ता हूं, तो उपरोक्त कोड ठीक चलता है। मुझे पता है कि यह काम करता है।

tl; डॉ

मैं एक शुद्ध उद्देश्य-सी कक्षा में कोकोपोड्स द्वारा बनाए गए शुद्ध स्विफ्ट फ्रेमवर्क का उपयोग कैसे कर सकता हूं?

समस्या निवारण

ज्यादातर मैं विभिन्न आयातों की कोशिश कर रहा हूं। Apple here @import शैली की सिफारिश करता here

लेकिन मैं कई अन्य किस्मों की कोशिश कर रहा हूं:

// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>

// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"

मैं समय-समय पर कुछ अन्य स्विफ्ट पुस्तकालयों की भी कोशिश कर रहा हूं, यह देखने के लिए कि क्या मैं कुछ भी क्लिक कर सकता हूं।

मुझे Cocoapods के मुद्दों पर कुछ भी दिखाई नहीं दे रहा है जो इसे मदद कर सकता है, मुझे उनके ब्लॉग / रिलीज़ सामान में कुछ भी नहीं मिला।

ध्यान दें

यदि मैं अलग ढंग से पुराने ढंग से प्रोजेक्ट करने के लिए अलग से SLPagingViewSwift.swift फाइल SLPagingViewSwift.swift हूं, तो यह ठीक काम करता है।


जूस का उपयोग करें

@import SwiftModuleName;

सिंटैक्स, और सुनिश्चित करें कि जिन कार्यों का आप उपयोग करना चाहते हैं, वे सार्वजनिक हैं (और @objc)


मुझे लगता है कि आपको स्विफ्ट क्लास को सार्वजनिक घोषित करना होगा, अन्यथा इसे एक आंतरिक वर्ग के रूप में माना जाता है और इसे केवल एक ही मॉड्यूल के भीतर देखा जा सकता है, और यही कारण हो सकता है कि इसे उसी प्रोजेक्ट में जोड़ना जैसे कि फाइलें काम करती हैं, लेकिन जैसा कि एक रूपरेखा नहीं है। मेरे साथ होने वाली अन्य बात यह है कि फ्रेमवर्क को वर्ग घोषणा के सामने @objc को जोड़ने की आवश्यकता हो सकती है ताकि इसे उद्देश्य-सी कक्षाओं के भीतर देखा जा सके। इसके अलावा उद्देश्य ग के बीच ऐप्पल की here की गाइड को पढ़ना और यह कहना है कि जब आप किसी बाहरी ढांचे को आयात करते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता होती है कि आपके द्वारा आयात किए जाने वाले ढांचे के लिए परिभाषित मॉड्यूल निर्माण सेटिंग हाँ पर सेट है। क्या आपने उन विकल्पों में से किसी के साथ जाँच की है?





cocoapods