Junior — Middle
Ar galima prijungti ir naudoti Objective-C kodą per Swift Package Manager?
sobes.tech AI
Atsakymas iš AI
Swift Package Manager (SPM) iš pradžių skirtas dirbti su Swift ir C/C++ kodu. SPM parama Objective-C yra ribota ir ne tiesioginė, nes SPM negali automatiškai kurti bridging headers (perėjimo antraščių) Objective-C.
Tačiau, Objective-C kodą galima naudoti Swift pakete, jei:
- Paketas turi Objective-C šaltinio failus (.m ir .h).
- Package.swift nurodo tinkamas nuostatas Objective-C failų įtraukimui.
- Swift kode naudojamas modulinis importas, o Objective-C failai teisingai eksportuojami per modulį.
Minimalios konfigūracijos pavyzdys — 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 kataloge turi būti Objective-C failai ir antraščių failai kataloge include.
Šiuo būdu, Objective-C kodas gali būti prijungtas ir naudojamas per Swift Package Manager, tačiau su apribojimais ir papildoma konfigūracija. Didesniems projektams dažnai naudojami CocoaPods ar Carthage, kurie geriau palaiko Objective-C.