Toll-free va Swift o'rtasidagi ko'prik nima?
sobes.tech AI
AIdan javob
Toll-free va Swift o'rtasidagi ko'prik Objective-C dan ba'zi Foundation turlarini to'g'ridan-to'g'ri Swiftda ishlatish imkonini beradigan mexanizm bo'lib, ular "Toll-free bridged" bo'lib, Core Foundation (C dan) bilan o'zaro bog'liq bo'lgan turlar bilan to'g'ridan-to'g'ri ishlash imkonini beradi va aksincha, yangi obyektlar yaratmasdan yoki konvertatsiya qilmasdan. Bu Swift va eski Objective-C/C freymvorklari o'rtasida o'zaro ishlashni ta'minlaydi, ularning ko'pchiligi Core Foundation dan foydalanadi.
Toll-free bridging shuni anglatadiki, siz bir turning nusxasini erkin ravishda boshqa tur kutayotgan joyga o'tkazishingiz mumkin, va aksincha, yangi obyekt yaratish uchun qo'shimcha xarajatlar qilmasdan. Swift kontekstida, bu NSString, NSArray, NSDictionary, NSDate kabi ba'zi Foundation turlariga taalluqlidir; ular Swiftda mos keladigan turlar: String, Array, Dictionary, Date sifatida ishlatilishi mumkin.
Toll-free bridged turlar misollari:
CFStringRef<=>NSString<=>StringCFArrayRef<=>NSArray<=>ArrayCFDictionaryRef<=>NSDictionary<=>DictionaryCFDateRef<=>NSDate<=>Date
Swift Objective-C bilan yozilgan API bilan o'zaro ta'sirda "avtomatik" ravishda bu ko'prikni amalga oshiradi, bu esa kodni yanada toza va qulay qiladi.
import Foundation // Foundation'ni o'z ichiga oladi va NS turlaridan foydalanishga imkon beradi
let nsString: NSString = "Swift'dan Salom" // NSString obyekti
let swiftString: String = nsString as String // NSString avtomatik ravishda String ga aylantiriladi
let swiftArray: [Int] = [1, 2, 3] // Swift massiv
let nsArray: NSArray = swiftArray as NSArray // Swift massiv avtomatik ravishda NSArray ga aylantiriladi
// NSString ni String kutadigan funksiyada foydalanish misoli (va aksincha)
func printString(_ str: String) {
print(str)
}
printString(nsString as String) // NSString ni uzatamiz, String kutiladi
func printNSString(_ nsStr: NSString) {
print(nsStr)
}
printNSString(swiftString as NSString) // String ni uzatamiz, NSString kutiladi
Toll-free va Swift o'rtasidagi ko'prik Apple ning Swift va legacy Objective-C va C kodlari o'rtasida moslikni ta'minlash bo'yicha umumiy strategiyasining bir qismidir. Bu yangi Swift kodini mavjud loyihalarga ko'chirish va integratsiya qilishni sezilarli darajada osonlashtiradi.