Կարո՞ղ եք Objective-C կոդը միացնել և օգտագործել Swift Package Manager-ի միջոցով։
sobes.tech AI
Պատասխան AI-ից
Swift Package Manager (SPM) սկզբնականում նախատեսված է աշխատելու Swift և C/C++ կոդի հետ: SPM-ում Objective-C-ի աջակցությունը սահմանափակ է և ոչ ուղղակի, քանի որ SPM չի կարող ավտոմատ կերպով ստեղծել բրիջինգ հեդերներ (bridging headers) Objective-C-ի համար:
Այնուամենայնիվ, հնարավոր է օգտագործել Objective-C կոդը Swift փաթեթում, եթե՝
- Փաթեթը պարունակում է Objective-C աղբյուրային ֆայլեր (.m և .h):
- Package.swift-ում նշված են համապատասխան կարգավորումները Objective-C ֆայլերը ներառելու համար:
- Swift կոդում օգտագործվում է մոդուլային ներբեռնում, և Objective-C ֆայլերը ճիշտ արտահանվում են մոդուլով:
Նվազագույն կարգավորումների օրինակ՝ Package.swift-ի համար Objective-C:
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
targets: [
.target(
name: "MyPackage",
dependencies: [],
path: "Sources",
publicHeadersPath: "include"
)
]
)
Sources/MyPackage թղթապանակում պետք է լինեն Objective-C ֆայլեր և գլխագրեր՝ include թղթապանակում:
Այս կերպ, Objective-C կոդը կարող է միացվել և օգտագործվել Swift Package Manager-ի միջոցով, բայց սահմանափակումներով և լրացուցիչ կարգավորումների հետ: Ավելի բարդ նախագծերի համար հաճախ օգտագործվում են CocoaPods կամ Carthage, որոնք ավելի լավ աջակցում են Objective-C-ին: