मेरे पास एक पुरानी उद्देश्य-सी परियोजना है और मैं नए स्विफ्ट फ़ंक्शन और ऑब्जेक्ट को कॉल करना चाहता हूं, मैंने फ़ाइल " <ProjectName>-Bridging-Header.h
" और " <ProjectName>-Swift.h
" बनाई है
मेरे लिए स्विफ्ट से ऑब्जेक्टिव-सी तक फ़ंक्शन को कॉल करना आसान था, लेकिन मुझे रिवर्स के लिए समस्या है।
इसलिए मैंने एक साधारण वर्ग "System.Swift" बनाया है
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
अब मैंने यहाँ प्रलेखन का पालन करने की कोशिश की है और <...>-Swift.h
फ़ाइल के अंदर मैंने इसे लिखा है
@class System;
@interface System : NSObject
-(void)printSome;
@end
और मैंने इसे अपने Objective-C Class के अंदर आयात किया है। मेरे उद्देश्य-सी कोड के मेरे उद्देश्य सी वर्ग (वर्तमान में UIViewController) के अंदर इस बिंदु पर मुझे "प्रिंटसम" विधि को कॉल करने का प्रयास करना है:
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
अब मेरे पास निम्न त्रुटि है:
आर्किटेक्चर के लिए अनिर्धारित प्रतीक i386: " OBJC_CLASS $ _System", से संदर्भित: objc-class-ref में "ObjectiveC_Class_That_Call_Swift_Object" .o ld: symbol (s) आर्किटेक्चर के लिए नहीं पाया गया i386 clang: एरर। -v देखने के लिए मंगलाचरण)