ස්විෆ්ට්හිදී, එක් අයෙකු Objective-C කේතය අමතන්නේ කෙසේද?
ඇපල් සමාගම එක් යෙදුමක සහජීවනය ඇති කළ හැකි බව සඳහන් කළ නමුත් මෙයින් අදහස් කරන්නේ ස්විෆ්ට් හි නව පන්ති ගොඩනඟන අතරම පරමාර්ථ-සී වලින් සාදන ලද පැරණි පන්ති තාක්ෂණිකව නැවත භාවිතා කළ හැකි බව ද?
ස්විෆ්ට්හිදී, එක් අයෙකු Objective-C කේතය අමතන්නේ කෙසේද?
ඇපල් සමාගම එක් යෙදුමක සහජීවනය ඇති කළ හැකි බව සඳහන් කළ නමුත් මෙයින් අදහස් කරන්නේ ස්විෆ්ට් හි නව පන්ති ගොඩනඟන අතරම පරමාර්ථ-සී වලින් සාදන ලද පැරණි පන්ති තාක්ෂණිකව නැවත භාවිතා කළ හැකි බව ද?
Answers:
ඔබ භාවිතා කිරීමට කැමති දැනට පවතින පන්තියක් තිබේ නම්, පියවර 2 සිදු කර 5 වන පියවර වෙත යන්න . (සමහර අවස්ථා සඳහා, මට
#import <Foundation/Foundation.hපරණ පරමාර්ථ-සී ගොනුවකට පැහැදිලි යමක් එක් කිරීමට සිදු විය .)
.mඔබේ පන්තියට ගොනුවක් එකතු කර එය නම් කරන්න CustomObject.m.
ඔබගේ .mගොනුව එකතු කරන විට , ඔබට මේ වගේ විමසුමක් ලැබෙනු ඇත:

ඔව් ක්ලික් කරන්න !
ඔබ විමසුම නොදුටුවේ නම් හෝ අහම්බෙන් ඔබේ පාලම් ශීර්ෂය මකා දැමුවේ නම්, .hඔබේ ව්යාපෘතියට නව ගොනුවක් එකතු කර එය නම් කරන්න<#YourProjectName#>-Bridging-Header.h .
සමහර අවස්ථාවන්හිදී, විශේෂයෙන් Objective-C රාමු සමඟ වැඩ කරන විට, ඔබ නිශ්චිතවම Objective-C පන්තියක් එක් නොකරන අතර Xcode හට සම්බන්ධකය සොයාගත නොහැක. මෙම අවස්ථාවේදී, .hඉහත සඳහන් කළ පරිදි ඔබේ ගොනුව සාදන්න , ඉන්පසු ඔබේ ඉලක්කයේ ව්යාපෘති සැකසුම් තුළ එහි මාර්ගය සම්බන්ධ කිරීමට වග බලා ගන්න:

සටහන:
ඔබේ ව්යාපෘතිය $(SRCROOT)සාර්ව භාවිතයෙන් සම්බන්ධ කිරීම වඩාත් සුදුසුය, එවිට ඔබ ඔබේ ව්යාපෘතිය ගෙනයන්නේ නම් හෝ දුරස්ථ ගබඩාවක් භාවිතා කරමින් අන් අය සමඟ වැඩ කරන්නේ නම් එය තවමත් ක්රියාත්මක වේ. $(SRCROOT)ඔබගේ .xcodeproj ගොනුව අඩංගු නාමාවලිය ලෙස සිතිය හැකිය. එය මේ වගේ විය හැකිය:
$(SRCROOT)/Folder/Folder/<#YourProjectName#>-Bridging-Header.h
තවත් .hගොනුවක් එකතු කර එය නම් කරන්නCustomObject.h .
තුළ CustomObject.h
#import <Foundation/Foundation.h>
@interface CustomObject : NSObject
@property (strong, nonatomic) id someProperty;
- (void) someMethod;
@end
තුළ CustomObject.m
#import "CustomObject.h"
@implementation CustomObject
- (void) someMethod {
NSLog(@"SomeMethod Ran");
}
@end
තුළ YourProject-Bridging-Header.h:
#import "CustomObject.h"
තුළ SomeSwiftFile.swift:
var instanceOfCustomObject = CustomObject()
instanceOfCustomObject.someProperty = "Hello World"
print(instanceOfCustomObject.someProperty)
instanceOfCustomObject.someMethod()
පැහැදිලිවම ආනයනය කිරීමේ අවශ්යතාවයක් නොමැත; පාලම් ශීර්ෂය එයයි.
.swiftඔබේ ව්යාපෘතියට ගොනුවක් එකතු කර එය නම් කරන්න MySwiftObject.swift.
තුළ MySwiftObject.swift:
import Foundation
@objc(MySwiftObject)
class MySwiftObject : NSObject {
@objc
var someProperty: AnyObject = "Some Initializer Val" as NSString
init() {}
@objc
func someFunction(someArg: Any) -> NSString {
return "You sent me \(someArg)"
}
}
තුළ SomeRandomClass.m:
#import "<#YourProjectName#>-Swift.h"
ගොනුව: <#YourProjectName#>-Swift.hඔබට නොපෙනුණත් ඔබගේ ව්යාපෘතිය තුළ දැනටමත් ස්වයංක්රීයව නිර්මාණය කළ යුතුය.
MySwiftObject * myOb = [MySwiftObject new];
NSLog(@"MyOb.someProperty: %@", myOb.someProperty);
myOb.someProperty = @"Hello World";
NSLog(@"MyOb.someProperty: %@", myOb.someProperty);
NSString * retString = [myOb someFunctionWithSomeArg:@"Arg"];
NSLog(@"RetString: %@", retString);
කේත සම්පුර්ණ කිරීම ඔබ අපේක්ෂා කළ පරිදි ක්රියා නොකරන්නේ නම්, වේගවත් ⌘⇧Rකේතයක් මඟින් Xcode හට ස්විෆ්ට් සන්දර්භයකින් සමහර අරමුණු-සී කේත සොයා ගැනීමට උදව් කිරීමට ඉක්මන් ගොඩනැගීමට උත්සාහ කරන්න .
ඔබ .swiftපැරණි ව්යාපෘතියකට ගොනුවක් එකතු කර දෝෂය ලබා ගන්නේ නම් dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib, Xcode සම්පූර්ණයෙන්ම නැවත ආරම්භ කිරීමට උත්සාහ කරන්න .
උපසර්ගය NSObjectභාවිතා කරමින් පරමාර්ථ-සී වෙත පෙනෙන පිරිසිදු ස්විෆ්ට් පංති (පැවත එන්නන් නොවේ ) මුලින් භාවිතා කළ හැකි වුවද @objc, මෙය තවදුරටත් කළ නොහැක. දැන්, Objective-C හි දෘශ්යමාන වීමට නම්, ස්විෆ්ට් වස්තුව එක්කෝ පන්තියට අනුකූල විය යුතුය NSObjectProtocol(මෙය කිරීමට පහසුම ක්රමය වන්නේ උරුම කර NSObjectගැනීමයි), හෝ සමහර පූර්ණ සංඛ්යා වර්ගයක අමු අගයකින් enumසලකුණු කළ යුතුය . මෙම සීමාවන් නොමැතිව භාවිතා කරමින් ස්විෆ්ට් 1.x කේතයේ උදාහරණයක් සඳහා ඔබට සංස්කරණ ඉතිහාසය නැරඹිය හැකිය .@objcInt@objc
කොකෝවා සහ පරමාර්ථ-සී සමඟ ස්විෆ්ට් භාවිතා කිරීම සඳහා ඇපල්ගේ මාර්ගෝපදේශය බලන්න . මෙම මාර්ගෝපදේශය ස්විෆ්ට් වෙතින් පරමාර්ථ-සී සහ සී කේත භාවිතා කරන ආකාරය ආවරණය කරන අතර ව්යාපෘතියක් පරිවර්තනය කරන්නේ කෙසේද යන්න හෝ පවතින ව්යාපෘතියක පරමාර්ථ-සී / සී සහ ස්විෆ්ට් කොටස් මිශ්ර කර ගැලපෙන්නේ කෙසේද යන්න පිළිබඳ නිර්දේශ ඇත.
C ශ්රිත සහ අරමුණු- C ක්රම ඇමතීම සඳහා සම්පාදකයා ස්වයංක්රීයව ස්විෆ්ට් සින්ටැක්ස් ජනනය කරයි. ප්රලේඛනයේ දැක්වෙන පරිදි, මෙම පරමාර්ථය-සී:
UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
මෙම ස්විෆ්ට් කේතය බවට හැරේ:
let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped)
එක්ස්කෝඩ් විසින් මෙම පරිවර්තනය පියාසර කරන විටද සිදු කරයි - ඔබට ස්විෆ්ට් ගොනුවක් සංස්කරණය කරන අතරතුර විවෘතව විවෘතව භාවිතා කර පරමාර්ථ-සී පන්තියේ නමක් ටයිප් කළ හැකිය, එය ඔබව පන්ති ශීර්ෂයේ ස්විෆ්ට්-අයිෆයිඩ් අනුවාදයකට ගෙන යනු ඇත. (ඔබ ද cmd-ක්ලික් ඉක්මනින් ගොනුව තුල API සංකේතය මත මෙම ලබා ගත හැක.) ඒ වගේම සියලුම API පරිශීලක ප්රලේඛනය , iOS 8 සහ OS X මෙහෙයුම් පද්ධතිය v10.10 (ෙයෝස්මයිට්) සංවර්ධක පුස්තකාල අරමුණ-C සහ ස්විෆ්ට් දෙකේම දෘශ්යමාන වේ ආකෘති (උදා UIView).
ස්විෆ්ට් ව්යාපෘතියක අරමුණු-සී කේතය භාවිතා කිරීම සඳහා පියවරෙන් පියවර උපදෙස් මෙන්න (මේ අවස්ථාවේ දී, තෙවන පාර්ශවයක් විසින් සපයන ලද රාමුවක්):

සරල පියවර වලින්:
විමසුමක් දිස්වේ, පසුව හරි මත ක්ලික් කරන්න ... එය නොපෙන්වන්නේ නම්, අපි එය පහත දැක්වෙන ආකාරයට අතින් සාදන්නෙමු ... iOS ප්රභවයෙන් එක් ශීර්ෂ ගොනුවක් සාදාගෙන ProjectName-Bridging-Header යන නම දෙන්න (උදාහරණය: පරීක්ෂණය -බ්රිජින්-හෙඩර්), ඉන්පසු ස්විෆ්ට් සම්පාදක කේතයේ සැකසුම් තැනීමට යන්න -> පරමාර්ථ-සී පාලම එකතු කරන්න පරමාර්ථ-සී පාලමේ නම .. (පරීක්ෂණ / පරීක්ෂණ-පාලම්-හෙඩර්.එච්). ඔව්, ඒක සම්පූර්ණයි.
විකල්පයක් ලෙස, ඔබ එකතු කළ පරමාර්ථ-සී ගොනුව මකන්න (ඉහත GIF රූපයේ "ඕනෑම දෙයක්" ලෙස නම් කර ඇත). ඔබට එය තවදුරටත් අවශ්ය නොවේ.
පාලම් ශීර්ෂ ගොනුව විවෘත කරන්න - ගොනු නාමය [YourProject] -Bridging-Header.h ආකාරයෙන් වේ. එයට Xcode සපයන අදහස් දැක්වීමක් ඇතුළත් වේ. තෙවන පාර්ශවීය රාමුවක් වැනි ඔබට ඇතුළත් කිරීමට අවශ්ය පරමාර්ථ-සී ගොනුව සඳහා කේත රේඛාවක් එක් කරන්න . උදාහරණයක් ලෙස, ඔබේ ව්යාපෘතියට මික්ස්පනෙල් එක් කිරීමට, ඔබට පහත කේත රේඛාව පාලම් ශීර්ෂ ගොනුවට එක් කිරීමට අවශ්ය වනු ඇත:
# ආයාත කරන්න "Mixpanel.h"
දැන් ඕනෑම ස්විෆ්ට් ගොනුවක ඔබට දැනට පවතින පරමාර්ථ-සී කේතය, ස්විෆ්ට් සින්ටැක්ස් තුළ භාවිතා කළ හැකිය (මෙම උදාහරණයේ දී ඔබට මික්ස්පනෙල් එස්ඩීකේ ක්රම ආදිය ඇමතිය හැකිය). Xcode විසින් Objective-C ස්විෆ්ට් බවට පරිවර්තනය කරන්නේ කෙසේද යන්න පිළිබඳව ඔබ හුරු විය යුතුය. ඇපල්ගේ මාර්ගෝපදේශය ඉක්මන් කියවීමකි. නැතහොත් අසම්පූර්ණ සාරාංශයක් සඳහා මෙම පිළිතුර බලන්න.
මික්ස්පනෙල් සඳහා උදාහරණය:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Mixpanel.sharedInstanceWithToken("your-token")
return true
}
ඒක තමයි!
සටහන: ඔබ ඔබේ ව්යාපෘතියෙන් පාලම් ශීර්ෂ ගොනුව ඉවත් කරන්නේ නම් , බිල්ඩ් සැකසීම් වෙත ගොස් "ස්විෆ්ට් කම්පයිලර් - කේත උත්පාදනය" යටතේ " අරමුණු-සී පාලම් ශීර්ෂය " සඳහා අගය ඉවත් කිරීමට වග බලා ගන්න .
ඔබට ලස්සන පෝස්ට් ස්විෆ්ට් සහ කොකෝපොඩ්ස් කියවිය හැකිය . මූලික වශයෙන්, අපි පාලම් ශීර්ෂ ගොනුවක් සාදා එහි සියලු අරමුණු-සී ශීර්ෂයන් එහි තැබිය යුතුය. ඉන්පසු අපි එය අපගේ ගොඩනැගීමේ සැකසුම් වලින් යොමු කළ යුතුය. ඊට පසු, අපට Objective-C කේතය භාවිතා කළ හැකිය.
let manager = AFHTTPRequestOperationManager()
manager.GET(
"http://example.com/resources.json",
parameters: nil,
success: { (operation: AFHTTPRequestOperation!,
responseObject: AnyObject!) in
println("JSON: " + responseObject.description)
},
failure: { (operation: AFHTTPRequestOperation!,
error: NSError!) in
println("Error: " + error.localizedDescription)
})
කොකෝවා සහ පරමාර්ථ-සී සමඟ ස්විෆ්ට් භාවිතා කරන ඇපල් ලේඛනය දෙස බලන්න .
මම සරල Xcode 6 ව්යාපෘතියක් ලිවූ අතර එය C ++, Objective-C සහ Swift කේතය මිශ්ර කරන්නේ කෙසේදැයි පෙන්වයි:
https://github.com/romitagl/shared/tree/master/C-ObjC-Swift/Performance_Console
විශේෂයෙන්, උදාහරණය ස්විෆ්ට් වෙතින් පරමාර්ථ-සී සහ සී ++ ශ්රිතයක් ලෙස හැඳින්වේ .
ප්රධාන දෙය නම් හවුල් ශීර්ෂයක් වන Project-Bridging-Header.h නිර්මාණය කර පරමාර්ථ-සී ශීර්ෂයන් එහි තැබීමයි.
කරුණාකර ව්යාපෘතිය සම්පූර්ණ උදාහරණයක් ලෙස බාගත කරන්න.
@ ලෝගන්ගේ පිළිතුරට මම ස්තූතිවන්ත වෙමි. පාලම් ගොනුවක් සහ සැකසුම් නිර්මාණය කිරීමට එය බොහෝ උපකාර කරයි.
නමුත් මේ සියලු පියවරයන් සිදු කිරීමෙන් පසුව මට තවමත් ස්විෆ්ට් හි වෛෂයික-සී පන්තියක් ලැබෙන්නේ නැත.
මම cocoapodsපුස්තකාලය භාවිතා කර එය මගේ ව්යාපෘතියට ඒකාබද්ධ කළෙමි . ඒ pod "pop".
එබැවින් ඔබ ස්විෆ්ට් හි Objective-C පොඩ් භාවිතා කරන්නේ නම් ඔබට ලබා ගත නොහැකි අවස්ථාවක් හෝ importපන්ති ස්විෆ්ට් වෙත ලබා ගත හැකිය .
ඔබට කළ යුතු සරලම දේ:
<YOUR-PROJECT>-Bridging-Headerගොනුව වෙත යන්න සහ#import <ObjC_Framework>කිරීමට@import ObjC_Frameworkඋදාහරණයක් ලෙස: (පොප් පුස්තකාලය)
ප්රතිස්ථාපනය කරන්න
#import <pop/POP.h>
සමග
@import pop;
වැඩ නොකරන clang importවිට භාවිතා කරන්න #import.
ප්රලේඛනයෙන් උපුටා ගැනීම :
මොඩියුලයක් ලෙස ප්රවේශ විය හැකි ඕනෑම අරමුණු-සී රාමුවක් (හෝ සී පුස්තකාලයක්) කෙලින්ම ස්විෆ්ට් වෙත ආනයනය කළ හැකිය. ෆවුන්ඩේෂන්, යූඅයිකිට්, සහ ස්ප්රයිට්කිට් වැනි සියලුම අරමුණු-සී පද්ධති රාමු මෙන්ම පද්ධතිය සමඟ සපයා ඇති පොදු සී පුස්තකාල ද මෙයට ඇතුළත් ය. උදාහරණයක් ලෙස, පදනම ආනයනය කිරීම සඳහා, ඔබ වැඩ කරන ස්විෆ්ට් ගොනුවේ ඉහළට මෙම ආනයන ප්රකාශය එක් කරන්න:
import Foundationමෙම ආනයනය මගින් එන්එස්ඩේට්, එන්එස්යූආර්එල්, එන්එස්මුටබල් ඩේටා ඇතුළු සියලුම පදනම් ඒපීඅයි සහ ඒවායේ සියලු ක්රම, ගුණාංග සහ කාණ්ඩ ස්විෆ්ට් හි කෙලින්ම ලබා ගත හැකිය.
ස්විෆ්ට් වෙත පරමාර්ථ-සී පුස්තකාලයක් එක් කිරීමට උත්සාහ කරන ඕනෑම අයෙකු සඳහා සටහනක්: ඔබ -ObjC එකතු කළ යුතුය දී බිල්ඩ් සැකසුම් -> වස්තු සබැඳීම -> වෙනත් Linker කොඩි .
ඔබ බ්රිජිං ශීර්ෂයක් සෑදූ පසු, බිල්ඩ් සැකසුම => "අරමුණු-සී පාලම් ශීර්ෂය" සඳහා සොයන්න.
මඳක් පහළින් ඔබට "" පරමාර්ථ-සී ජනනය කළ අතුරුමුහුණත් ශීර්ෂ නාමය "ගොනුව හමුවනු ඇත.
ඔබගේ දර්ශන පාලකයේ එම ගොනුව ආයාත කරන්න.
උදාහරණය: මගේ නඩුවේ: "Dauble-Swift.h"
නව ක්ලික් කරන්න ගොනු මෙනුව ගොනු තෝරාගත් භාෂා පරමාර්ථය තෝරන්න. එම අවස්ථාවේදී එය ස්වයංක්රීයව "පරමාර්ථ-සී බ්රිජින් හෙඩර්" ගොනුවක් ජනනය කරන අතර එය යම් පන්ති නාමයක් අර්ථ දැක්වීමට භාවිතා කරයි.
"ස්විෆ්ට් කම්පයිලර් - කේත උත්පාදනය" යටතේ "අරමුණු-සී පාලම් ශීර්ෂය".
Xcode 10.1 හි ස්විෆ්ට් 4.2.1 ව්යාපෘතියේදී ඔබට පහසුවෙන් Objective-C ගොනුව එක් කළ හැකිය. Objective-C ගොනුව ස්විෆ්ට් ව්යාපෘතියට සම්බන්ධ කිරීම සඳහා පහත පියවර අනුගමනය කරන්න.
පියවර_01: ස්විෆ්ට් භාෂාව භාවිතයෙන් නව Xcode ව්යාපෘතියක් සාදන්න:
File> New> Project> objc.
පියවර_02: ස්විෆ්ට් ව්යාපෘතියේදී නව අරමුණු-සී ගොනුවක් එක් කරන්න:
File> New> File...> macOS> Objective-C File.
පියවර_03: ඔබ පළමු වරට ස්විෆ්ට් ව්යාපෘතියට නව අරමුණු-සී ගොනුවක් එක් කළහොත්, Xcode ඔබෙන් මෙසේ අසයි:
Would you like to configure an Objective-C bridging header?
පියවර_04: විකල්පය තෝරන්න:
Create Bridging Header.
පියවර_05: නමක් සමඟ අනුරූප ගොනුවක් ජනනය වේ:
Objc-Bridging-Header.h.
පියවර_06: දැන් ඔබට පාලම් ශීර්ෂයේ බ්රිජ් ගොනු මාර්ගය සැකසිය යුතුය. Project Navigator හි නම සහිත ව්යාපෘතිය මත ක්ලික් කර objcඉන්පසු තෝරන්න:
Build Settings> Objective-C Bridging Header> Objc-Bridging-Header.h.
පියවර_07: Objc-Bridging-Header.hගොනු මාර්ගයක් ජනනය කිරීම සඳහා ඔබේ කොටුව තුළට ඇදගෙන යන්න .
පියවර_08: ඔබේ Objc-Bridging-Header.hගොනුව විවෘත කර ඔබේ ස්විෆ්ට් ගොනුවේ භාවිතා කිරීමට අවශ්ය පරමාර්ථ-සී ගොනුව ආයාත කරන්න.
#import "SpecialObjcFile.m"
මෙහි අන්තර්ගතය SpecialObjcFile.m:
#import <Foundation/Foundation.h>
@interface Person: NSObject {
@public
bool busy;
}
@property
bool busy;
@end
පියවර_09: දැන් ඔබේ ස්විෆ්ට් ගොනුවේ, ඔබට පරමාර්ථ-සී පන්තියක් භාවිතා කළ හැකිය:
override func viewDidLoad() {
super.viewDidLoad()
let myObjcContent = Person()
print(myObjcContent.busy)
}
නවතම ඒවා හැර ලෝගන්ස් පිළිතුර හොඳින් ක්රියාත්මක වේSwift 5 සම්පාදක දෝෂයක් වේ. ස්විෆ්ට් 5 හි වැඩ කරන පුද්ගලයින් සඳහා වන විසඳුම මෙන්න.
import Foundation
class MySwiftObject : NSObject {
var someProperty: AnyObject = "Some Initializer Val" as AnyObject
override init() {}
func someFunction(someArg:AnyObject) -> String {
let returnVal = "You sent me \(someArg)"
return returnVal
}
}
නව ශීර්ෂයක් .hසහ ක්රියාත්මක කිරීමේ .mලිපිගොනු එක් කරන්න - කොකෝවා පන්ති ගොනුව (පරමාර්ථ-සී)
උදාහරණයක් ලෙස MyFileName.
පාලම් ශීර්ෂය වින්යාස කරන්න
ඔබ Would you like to configure an Objective-C bridging headerක්ලික් කිරීම දුටු විට - ඔව්
<target_name>-Bridging-Header.h ස්වයංක්රීයව ජනනය වේගමත් නගරයත් යා-ශීර්ෂකය කිරීමට පන්තියේ එකතු
දී <target_name>-Bridging-Header.hරේඛාවක් එකතු#import "<MyFileName>.h"
ඊට පසු ඔබට ඇතුළත සිට භාවිතා කළ MyFileNameහැකියObjective-CSwift
PS ඔබ දැනට පවතින Objective-C ගොනුවක් ස්විෆ්ට් ව්යාපෘතියට එකතු කළ යුතු නම් Bridging-Header.hඑය කලින් එකතු කර ආයාත කරන්න
A එකතු කර <MyFileName>.swiftදිගු කරයිNSObject
ObjC පන්තියට ස්විෆ්ට් ගොනු ආයාත
කරන්න #import "<target_name>-Swift.h"ඔබේ පරමාර්ථ-සී ගොනුවට එක් කරන්න
[@Objc සහ jobjcMembers] විසින් පොදු ස්විෆ්ට් කේතය @objc නිරාවරණය කරන්න
ඊට පසු ඔබට භාවිතා Swiftකළ හැකියObjective-C
ඇපල් විසින් මෙම ලේඛනයේ නිල මාර්ගෝපදේශයක් ලබා දී ඇත: කෙසේද-ඇමතීම-වෛෂයික-සී-කේතය-වේගයෙන්
අදාළ කොටස මෙන්න:
එකම යෙදුම් ඉලක්කය තුළ ස්විෆ්ට් කේතයට පරමාර්ථ-සී ගොනු සමූහයක් ආයාත කිරීම සඳහා, එම ලිපිගොනු ස්විෆ්ට් වෙත නිරාවරණය කිරීම සඳහා ඔබ අරමුණු-සී පාලම් ශීර්ෂ ගොනුවක් මත විශ්වාසය තබයි . ඔබ දැනට පවතින Objective-C යෙදුමකට ස්විෆ්ට් ගොනුවක් හෝ පවතින ස්විෆ්ට් යෙදුමකට Objective-C ගොනුවක් එක් කරන විට මෙම ශීර්ෂය නිර්මාණය කිරීමට Xcode ඉදිරිපත් කරයි.
ඔබ පිළිගන්නේ නම්, එක්ස්කෝඩ් ඔබ විසින් සාදන ලද ගොනුව සමඟ බ්රිජිං ශීර්ෂ ගොනුව නිර්මාණය කරන අතර ඔබේ නිෂ්පාදන මොඩියුලයේ නම භාවිතා කර එය නම් කරන්නේ "-බ්රිජින්-හෙඩර්.එච්" ය. විකල්පයක් ලෙස, ගොනුව> නව> ගොනුව> [මෙහෙයුම් පද්ධතිය]> මූලාශ්රය> ශීර්ෂ ගොනුව තේරීමෙන් ඔබට පාලම් ශීර්ෂයක් නිර්මාණය කළ හැකිය.
ඔබේ පරමාර්ථ-සී කේතය ඔබේ ස්විෆ්ට් කේතයට නිරාවරණය කිරීම සඳහා පාලම් ශීර්ෂය සංස්කරණය කරන්න:
පාලම් ශීර්ෂයේ ලැයිස්තුගත කර ඇති ඕනෑම පොදු පරමාර්ථ-සී ශීර්ෂයක් ස්විෆ්ට් වෙත දැකිය හැකිය.
වෛෂයික-සී වෛෂයික-ඇ
1
2
දැන් යන්න හොඳයි ස්තූතියි